Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
UNIDAD 3 – FASE 4
ACTIVIDAD INDIVIDUAL
Presentado por:
FABIÁN ESTEBAN LUNA ÁLVAREZ – CODIGO: 1.042.706.636
DIRECTOR:
ANYELO GERLEY QUINTERO
GRUPO 27
ESPACIO DB 13,10,"$"
LECTURA DB 13,10,"PROGRAMA QUE CONSISTE EN LEER UN NUMERO DE UN DIGITO POR TECLADO","$"
LECTURA1 DB 13,10,"Y EVALUAR SI EL NUMERO INGRESADO ES: PAR, IMPAR O CERO","$"
LECTURA2 DB 13,10,"TRABAJO REALIZADO POR FABIAN ESTEBAN LUNA ALVAREZ"
LECTURA3 DB 13,10,"CODIGO: 1.042.706.636","$"
LECTURA4 DB 13,10,"UNAD","$"
LECTURA5 DB 13,10,"2017","$"
MENSAJE DB 13,10,"DIGITAR NUMERO DE UN SOLO DIGITO: ","$"
MEN_PAR DB 13,10,"EL NUMERO INGRESADO ES PAR","$"
MEN_IMPAR DB 13,10,"EL NUMERO INGRESADO ES IMPAR","$"
MEN_CERO DB 13,10,"EL NUMERO INGRESADO ES CERO","$"
ESPACIO1 DB 13,10,"","$"
VALOR DB 0
NUM DB 2
.CODE
.STARTUP
INT 21H
MOV AH,09H
LEA DX, LECTURA5
INT 21H
MOV AH,09H
LEA DX,ESPACIO
INT 21H
MOV AH,09H
LEA DX, MENSAJE
INT 21H
CALL LEER
SUB AL,30H
MOV VALOR,AL
MOV AH,09H
LEA DX,ESPACIO
INT 21H
MOV BL,VALOR
CMP BL,0
JE CERO
INT 21H
XOR AX,AX
MOV AL,NUM
MOV BL,AL
MOV AL,VALOR
DIV BL
CMP AH,0
JZ PAR
JMP IMPAR
;PROCEDIMIENTOS
LEER PROC NEAR
MOV AH,01H
INT 21H
RET
CERO:
MOV AH,09H
LEA DX,MEN_CERO
INT 21H
JMP SALIR
PAR:
MOV AH,09H
LEA DX, MEN_PAR
INT 21H
JMP SALIR
IMPAR:
MOV AH,09H
LEA DX,MEN_IMPAR
INT 21H
JMP SALIR
SALIR:
MOV AX,4C00H
INT 21H
END
3. Desarrollar un código en lenguaje ensamblador que permita realizar una multiplicación de
dos números a través de sumas sucesivas y una potencia a través de multiplicaciones
sucesivas (para ello debe utilizar instrucciones tipo bucle). Al inicio del programa se deben
capturar por teclado dos números de un digito cada uno; Generar tres capturas por pantalla
de la ejecución del programa. Anexar Archivo .asm del programa. Nota: No utilizar Simuproc
include "emu8086.inc"
.model small
.stack
.data
var1 db 0
var2 db 0
potencia db 1
diez dw 10
.code
inicio:
mov dx,@data
mov ds,dx
xor ax,ax
xor bx,bx
xor cx,cx
mov var1,0
mov var2,0
mov ah,09h
lea dx,mj2
int 21h
mov ah,01h
int 21h
sub al,30h
mov var1,al
mov ah,09h
lea dx,mj3
int 21h
cmp var2,0
jz sr
mov cl,var2
Multi:
add bl,var1
loop Multi
sr:
mov ah,09h
lea dx,mj4
int 21h
mov ax,bx
call PRINT_NUM
mov ah,09h
lea dx,mj5
int 21h
xor ax,ax
xor bx,bx
xor cx,cx
mov al,potencia
cmp var2,0
jz sh
mov cl,var2
Pot:
mul var1
loop pot
sh:
call PRINT_NUM
jmp inicio
not_zero:
cmp ax,0
jns positive
neg ax
PUTC "-"
positive:
call PRINT_NUM_UNS
printed:pop ax
pop dx
ret
PRINT_NUM endp
mov cx,1
mov bx,10000
cmp ax,0
begin_print:
cmp bx,0
jz end_print
cmp cx,0
je calc
cmp ax,bx
jb skip
add al,30h
putc al
mov ax,dx
skip:
push ax
mov dx,0
mov ax,bx
div diez
mov bx,ax
pop ax
jmp begin_print
putc "0"
end_print:
pop dx
pop cx
pop bx
pop ax
ret
PRINT_NUM_UNS endp
end
CONCLUSIONES