Hola el dia de hoy veremos ejemplos de como hacer una divición simple en ensamblador y practicaremos un poco mas el aspecto de las condicionales.
Codigo:
Como podemos ver en la imagen los valores 100 y 5 se almacenan en los registros en formato hexadecimal
Al efectuar la división obtenemos el numero 14 en hexadecimal, el cual representa el numero 20 en decimal.
org 100h mov ax,100 ;se coloca el numero 9 al registro ax mov bx,5 ;se coloca el numero 8 al registro bx div bx; se dividira ax/bx ret
Al efectuar la división obtenemos el numero 14 en hexadecimal, el cual representa el numero 20 en decimal.
Codigo:
.model small
.stack
.data
diez db 10; variable para imprimir 2 caracteres (se multiplica por el primer valor)
num1 db 0; variable para la edad
mE1 db 10,13,"Ingrese la edad: $" ;mE1: mensaje edad 1
mens1 db 10,13,"Eres mayor de edad $"
mens2 db 10,13,"Eres menor de edad $"
.code
inicio proc far
mov ax,@data ;lleva a cabo el direccionamiento del segmento datos
mov ds,ax ;Los datos se mueven al registro ax
;poner el primer letrero
mov ah,09
lea dx,mE1
int 21h
;lectura del valor
mov ah,01
int 21h
sub al,30h ;convierto a decimal
mul diez ;se multiplica el numero ingresado para las decenas
mov num1,al ;guardo el valor introducido en num1
;lectura segundo valor
mov ah,01
int 21h
sub al,30h ;convierto a decimal
add al,num1
cmp al,18 ;Si lo que se encuentra en al>18
JGE mayor ;salta a mayor
JMP menor ;sino ve a menor
mayor:
mov ah,09
lea dx,mens1
int 21h
jmp final
menor:
mov ah,09
lea dx,mens2
int 21h
jmp final
final:
mov ah,4ch
int 21h
endp inicio
end
Resultado:
Comentarios
Publicar un comentario