Primer hola mundo
Salida del programa
Programa hola mundo
.STACK n sirve para fijar un tamaño n del segmento de pila, por defecto 1K.
.DATA abre el segmento de datos.
.CODE abre el segmento de código, al final código debe aparecer END.
Una vez inicializado los segmento se permite usar los símbolos @CODE y @DATA en lugar del
nombre de los segmentos de código y datos respectivamente.
Justo después de la directiva .CODE hay que inicializar el segmento de datos (ya que la directiva
no genera código):
MOV AX, @DATA
MOV DS, AX
Salida del programa:
Suma de un numero
Los numero se declaran dentro del programa y estos serán 5 y 3 después de la suma se hará un incremento en esa suma entonces: 5+3=8 a 8 se le incrementa 1 (inc bx) y despues se le suma el numero 6 entonces sera ahora: 9+6=15
Salida del programa
Incremento de un numero
Salida del programa
Programa que imprime las letra del abecedario
Salida del programa
Programa que imprime un mensaje
Salida del programa
Suma de dos dígitos ingresados por el usuario
Resta de dos números ingresados por el usuario
.model small.stack 64
.data
n1 db 0
n2 db 0
resta db 0
msg1 db "Dame el primer valor " , '$'
msg2 db 10,13,"Dame el segundo valor ",'$'
msg3 db 10,13,"Resta= ",'$'
.code
begin proc far
;direccionamos al segmentos de datos
mov ax,@data
mov ds,ax
; primer digito
mov ah,09
lea dx, msg1
int 21h
;Se lee el primer valor
mov ah,01
int 21h
add al, 30h ;convierte el caracter en numero
mov n1,al
;Solicitamos el segundo digito
mov ah,09
lea dx, msg2
int 21h
mov ah,01
int 21h
sub al, 30h ; Convierte el caracter en numero
mov n2,al
;Operacion
mov al,n1
sub al,n2
sub al,30h ; Convierte a caracter
mov resta, al
mov ah,09
lea dx,msg3
int 21h
;Se imprime el caracter con el servicio 02 de la int 21h
mov ah,02
mov dl,resta
int 21h
begin endp
end
Salida del programa
Division de un numero 100/5
Salida del programa
Programa que compara una calificación y muestra un mensaje de aprobado o reprobado
.model small
.stack 64
.data ;seccion de variables
msg1 db "Dame una calificacion (seguida de un entero):$"
aprobado db 13,10, "Aprobado$"
reprobado db 13,10, "Reprobado$"
VAR1 dw ?, "$"
VAR2 dw ?, "$"
VAR3 dw ?, "$"
.CODE
; inicia el segmento de codigo
resultado proc far
mov ax, @data ; inicio
mov ds, ax
;desplegar primer mensaje
mov ah, 09
lea dx, msg1
int 21h
;pedir un caracter
mov ah, 01
int 21h
mov VAR1, ax
;segundo caracter
mov ah, 01
int 21h
mov VAR2, ax
;tercer caracter
mov ah, 01
int 21h
mov VAR3, ax
;evaluar la calficacion
cmp al,13
JE CONTINUE ;SALTA SI ES IGUAL A 13
;JGE CONTINUE
JMP MAYOR
;INICIA FUNCION
CONTINUE:
MOV AX, VAR1
CMP AL,037H ;7 ES 37 EN ASCII
JGE MAYOR ;SALTA SI ES MAYOR A O IGUAL
JMP MENOR
MAYOR:
MOV AH, 09
LEA DX, APROBADO
INT 21H
JMP SALIR
MENOR:
MOV AH, 09
LEA DX, REPROBADO
INT 21H
JMP SALIR
SALIR:
MOV AX, 4C00H
INT 21H
RESULTADO ENDP
END RESULTADO
Salida del programa
Programa que te dice si eres mayor o menor de edad
.model small
.stack 64
.data
diez db 10 ;variable que se muliplica para obtener decimales
num1 db 0
msg db "Ingrese la edad: $"
msg1 db " Eres mayor de edad $ "
msg2 db " Eres menor de edad $ "
.code
inicio proc far
mov ax, @data ;direccionamos el segmento de datos
mov ds, ax ;los datos se mueven a ax
;primer letrero
mov ah, 09
lea dx, msg
int 21h
mov ah, 01
int 21h
sub al, 30h
mul diez ; se multiplica el numero ingresado para
;las decenas
mov num1, al
mov ah,01
int 21h
sub al,30h
add num1, al
mov al, num1
cmp al, 18
jge mayor
jmp menor
mayor:
mov ah, 09
lea dx, msg1
int 21h
jmp fin
menor:
mov ah, 09
lea dx, msg2
int 21h
jmp fin
fin:
MOV AX, 4C00H
int 21h
inicio endp
ret
Salida del programa
No hay comentarios:
Publicar un comentario