Você está na página 1de 4

Aluna: Karla Esequiele de Lima

Curso: RC/Noite 2º Período

Descrição Calculadora

.model small

.stack 100

.data

msg1 db 'digite o 1 numero' ,13,10,'$'

msg2 db 'digite o 2 numero' ,13,10,'$'

msg3 db 'erro: resultado > 9 ' ,13,10,'$'

msg4 db 'o resultado e ...' ,13,10,'$'

msg5 db 13,10,'$'

.code

mensagem1:

mov ax, data 'carrega ax com os dados

mov ds, ax 'carrega ds com ax

mov ah, 9 'carrega ah com 9

lea dx, msg1 'lê em dx a string msg1

int 21h 'executa interrupção com função 9

leitura1:
mov ah, 01h 'carrega ah com 01h (leitura de teclado)

int 21h 'executa interrupção com função 01h

sub al, 30h 'subtrai de 30h para converter em um digito de 0 a 9

mov bl, al 'carrega bl com dados de al

mensagem2:

mov ax, data 'move os dados pra ax

mov ds, ax 'carrega ds com ax

mov ah, 9 'carrega ah com 9

lea dx, msg2 'Lê a string msg2

int 21h 'executa interrupção com função 9

leitura2:

mov ah, 01h 'move 01h para ah

int 21h 'executa interrupção com função 01h

sub al, 30h 'subtrai de 30h para converter em um digito de 0 a 9

mov cl, al 'move al para cl


soma:

add cl, bl 'soma cl com bl

cmp cl, 9h 'compara o resultado com 9h

jng result 'desvia para result se o resultado for menor ou igual

jmp erro 'desvia para erro se o resultado for maior

result:

mov ax, data 'carrega ax com data

mov ds, ax ' mova ax para ds

mov ah, 9 'carrega ah com 9

lea dx, msg4 ' lê a string msg4

int 21h 'executa interrupção com função 9

add cl, 30h 'adiciona de 30h para converter em um digito de 0 a 9

mov msg5, cl 'move o conteúdo de cl para string msg5

mov ah, 9 'carrega ah com 9

lea dx, msg5 'lê a string msg5

int 21h 'executa interrupção com função 9

mov ah, '4ch 'move 4ch para ah


int 21h 'executa interrupção com função 4ch (retorna ao SO)

erro:

mov ax, data 'carrega ax com data

mov ds, ax 'move ax para ds

mov ah, 9 'carrega ah com 9

lea dx, msg3 'lê a string msg3

int 21h 'executa interrupção com função 9

jmp mensagem1 'desvia para mensagem1

Você também pode gostar