Myself*
Power Member
segment data
cadeia dw 'abcdefghijlmnopqrst0'
caractere db 'e'
contador db 0
i db 0
segment code
..start:
mov ax, data
mov ds, ax
mov ax, [caractere]
mov bx, [cadeia]
mov cx,
mov dx, [contador]
ciclo: cmp bl, 0
je fim
cmp bl, al
je inc
jmp ninc
inc: call incrementa
ninc: cmp bh, 0
je fim
cmp bh, al
je inc2
jmp ninc2
inc2: call incrementa
ninc2: add cx, 2
mov bx, [cadeia+cx]
jmp ciclo
incrementa
add dx, 1
ret
fim: mov [contador], dx
mov ah, 4ch
int 21h
Como explico as instruções, deste programa? Ideias... Não consigo perceber Assembly e tb não encontro tutoriais sobre isto. Penso que este programa diz respeito á contagem da ocorrência de um dado carácter numa cadeia com 20 caracteres e que termina em 0, mas não tenho a certeza. Tenho k comentar cada uma das etapas do programa. Alguem me ajude...
cadeia dw 'abcdefghijlmnopqrst0'
caractere db 'e'
contador db 0
i db 0
segment code
..start:
mov ax, data
mov ds, ax
mov ax, [caractere]
mov bx, [cadeia]
mov cx,
mov dx, [contador]
ciclo: cmp bl, 0
je fim
cmp bl, al
je inc
jmp ninc
inc: call incrementa
ninc: cmp bh, 0
je fim
cmp bh, al
je inc2
jmp ninc2
inc2: call incrementa
ninc2: add cx, 2
mov bx, [cadeia+cx]
jmp ciclo
incrementa
add dx, 1
ret
fim: mov [contador], dx
mov ah, 4ch
int 21h
Como explico as instruções, deste programa? Ideias... Não consigo perceber Assembly e tb não encontro tutoriais sobre isto. Penso que este programa diz respeito á contagem da ocorrência de um dado carácter numa cadeia com 20 caracteres e que termina em 0, mas não tenho a certeza. Tenho k comentar cada uma das etapas do programa. Alguem me ajude...
Última edição pelo moderador: