Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ingeniería de sistemas
1.065.824.953
Grupo: 301302_33
Arquitectura de computadores
Tutor:
Valledupar cesar
2019
Introducción
MENÚ
7. Salir
; Codigo: 1.065.824.953
; Grupo No:301302_33
; Fecha: 05/12/2019
include 'EMU8086.INC'
data segment
resultado DB 0
cociente DB 0
residuo DB 0
numero DB 0
signox DB 0
r2 DB ?
ac DB 0
NUM1 DB ?
data ends
pila ends
code segment
push ds
xor ax, ax
push ax
mov ds, ax
xor dx, dx
mov al, 0
mov resultado, al
mov dl, 10
mov dl, 13
mov dl, 10
int 21h
mov dl, 10
mov dl, 13
int 21h
int 21h
mov dl, 13
int 21h
mov dl, 10
mov dl, 13
int 21h
int 21h
mov ah, 02h ;interlineado
mov dl, 10
mov dl, 13
int 21h
mov dl, 10
int 21h
mov dl, 13
int 21h
int 21h
mov dl, 10
mov dl, 13
int 21h
int 21h
mov dl, 10
int 21h
mov dl, 13
int 21h
mov ah, 09h ;Despliega usando la funcion 9(valor cargado en ah)de la
interrupcion 21h
int 21h
mov dl, 10
int 21h
mov dl, 13
int 21h
;lectura teclado
int 21h
;ajuste al teclado
xor ah, ah
sub al, 30h ;Se resta el numero(30h) para obtener el numero
mov cx, 2
cmp al, 2
cmp al, 3
cmp al, 4
cmp al, 5
cmp al, 6
jz validar ;Se dirige al metodo de validar positivo o negativo
cmp al,7
jz fin
mov dl, 10
mov dl, 13
int 21h
int 21h
mov dl, 10
int 21h
mov cx, 12
mov si, 0
int 21h
mov dl, 10
mov dl, 13
int 21h
mov cx, 12
mov si, 0
;Despliega usando la funcion 9(valor cargado en ah)de la
interrupcion 21h
int 21h
mov dl, 10
mov dl, 13
int 21h
mov cx, 08
mov si, 0
mov dl, 10
int 21h
mov dl, 10
int 21h
mov dl, 13
int 21h
mov dl, 10
int 21h
mov dl, 13
int 21h
int 21h
;lee el teclado
int 21h
;verifica si es negativo
cmp al, 2dh
je signo
;ajusta el teclado
add resultado, al
jmp return1
signo:
neg al
je return1
imp1:
cmp resultado, 00
jl imp2
;interlineado
mov dl, 10
mov dl, 13
int 21h
int 21h
jmp imprime
imp2:
neg resultado
;interlineado
mov dl, 10
mov dl, 13
int 21h
int 21h
jmp imprime
MOV AH, 0
MOV CL, 10
DIV CL
MOV BL, AH
MOV DL, AL
INT 21H
MOV DL, BL
INT 21H
mov cx, 2
mov dl, 10
mov dl, 13
int 21h
mov ah, 02h ;Despliega usando la funcion 2(valor cargado en ah)de la
interrupcion 21
mov dl, 10
mov dl, 13
int 21h
int 21h
mov dl, 10
int 21h
mov dl, 13
int 21h
mov dl, 10
int 21h
mov dl, 13
int 21h
mov dl, 13
int 21h
;lee teclado
;verifica si es negativo
je signor
;ajusta el teclado
je etiqueta1 ;resultado
sub resultado, al
jmp return2
signor:
neg al
cmp cx, 2
je etiqueta1
sub resultado, al
je return2
return2:loop resta
jmp imp1
multiplicacion: ;funcion multiplicacion
mov dl, 10
mov dl, 13
int 21h
int 21h
;lee teclado
;verifica si es negativo
je signom
sub al, 30h ;Se resta el numero(30h) para obtener el numero
cmp cx, 2
je etiqueta2
mov ah, 0
etiqueta2:
mov resultado, al
jmp return3
signom:
int 21h
neg al
cmp cx, 2
je etiqueta2
mov ah, 0
mul resultado
jmp return3
return3: loop multiplicacion
mov resultado, al
jmp imp1
mov signox, 0
division:
mov dl, 10
mov dl, 13
int 21h
;lee teclado
;verifica si es negativo
je signod
cmp cx, 2
je etiqueta3
cmp al, 0
je falla
mov ah, 0
mov numero, al
div numero
jmp return4
etiqueta3:
signod:
mov ah,01 ;;Despliega usando la funcion 1(valor cargado en ah)de la
interrupcion 21
int 21h
inc signox
cmp cx, 2
je etiqueta3
mov ah, 0
mov numero, al
div numero
jmp return4
mov cociente, al
mov residuo, ah
mov resultado, al
jmp imp3
falla:
jmp division
imp3:
mov dl, 10
mov dl, 13
int 21H
jmp imprimedivision
imprimedivision:
ADD AL, CH
ADD AH, CH
MOV BL, AH
MOV AH, 9
INT 21H
cmp signox, 1
jz cambio
jmp termina
cambio:
int 21h
mov signox, 0
termina:
INT 21H
mov dl, 10
int 21h
mov dl, 13
int 21h
INT 21H
mov dl, 10
MOV DX, 0
jmp menu
validar:
mov dl, 10
mov dl, 13
MOV NUM1[0], cL
MOV AL, 00
JL POSITIVO
jG NEGATIVO
mov dl, 10
mov dl, 13
INT 21H
jmp menu
mov dl, 10
mov dl, 13
int 21h
INT 21h
jmp menu
fin: ret
DEFINE_PRINT_STRING
DEFINE_PRINT_NUM
DEFINE_PRINT_NUM_UNS
DEFINE_SCAN_NUM
Numero positivo
Numero negativo
7. Salir
Conclusión
http://galia.fc.uaslp.mx/~cantocar/ARQUI_COM_II/LIBRO%20IBM-PC/05.htm
https://www.alpertron.com.ar/INST8088.HTM