This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; HOLA.ASM | |
; Despliega una leyenda en pantalla. | |
STACK SEGMENT STACK ; Segmento de pila | |
DW 64 DUP (?) ; Define espacio en la pila | |
STACK ENDS | |
DATA SEGMENT ; Segmento de datos | |
SALUDO DB "Hola mundo!!",13,10,"$" ; Cadena | |
DATA ENDS | |
CODE SEGMENT ; Segmento de Código | |
ASSUME CS:CODE, DS:DATA, SS:STACK | |
INICIO: ; Punto de entrada al programa | |
MOV AX,DATA ; Pone dirección en AX | |
MOV DS,AX ; Pone la dirección en los registros | |
MOV DX,OFFSET SALUDO ; Obtiene dirección del mensaje | |
MOV AH,09H ; Función: Visualizar cadena | |
INT 21H ; Servicio: Funciones alto nivel DOS | |
MOV AH,4CH ; Función: Terminar | |
INT 21H | |
CODE ENDS | |
END INICIO ; Marca fin y define INICIO |
Programa que pide tu nombre desde teclado y muestra un mensaje en consola saludandote.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
include 'emu8086.inc' | |
ORG 100h | |
LEA SI, msg1 ; establece puntero (SI) a msg | |
; pregunta el numero | |
CALL print_string ; imprime mensaje que SI apunta | |
LEA DI, buffer ; configura el puntero (DI) para ingresar buffer | |
MOV DX, bufSize ; asigna tamano al buffer | |
CALL get_string ; obtiene nombre y lo pone en el buffer | |
LEA SI, newln ; apunta a CR/LF / Hello message | |
CALL print_string ; imprime mensaje que SI apunta | |
RET ; retorna al sistema operativo. | |
; data | |
msg1 DB "Enter your name: ", 0 | |
newln DB 13, 10 | |
DB "Hello, " | |
buffer DB 20 DUP (0) ; ingresa buffer para get_string | |
bufSize = $-buffer ; calcula el tamano del buffer | |
DEFINE_GET_STRING | |
DEFINE_PRINT_STRING | |
END ; directiva para detener el compilador |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
mov cx,1 | |
mov al, 13h | |
mov ah, 0 | |
int 10h ; set graphics video mode. | |
bucle1: | |
mov dx, cx | |
mov al, color ;AL = pixel color | |
mov ah, 0ch ;Change color for a single pixel | |
int 10h ;set pixel | |
cmp cx, 101 ;llegar hasta 100 x 100 (va en diagonal) | |
jz fin | |
inc cx ;DX = row. | |
add color, 2 ;para cambiar colores | |
jmp bucle1 ;CX = column | |
fin: | |
ret | |
color db 1 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name "archivo3" | |
org 100h | |
mov al, 0 ;modo de acceso para abrir arhivo, modo lectura/escritura | |
mov dx, offset archivo ;offset lugar de memoria donde esta la variable | |
mov ah, 3dh ;se intenta abrir el archivo | |
int 21h ;llamada a la interrupcion DOS | |
jc error ; si se prendio la bandera c ir a error | |
mov handle, ax ;si no paso mover a lo que le dio el SO | |
jmp leer | |
error: | |
; .... | |
;leer archivo | |
leer: | |
mov bx, handle | |
mov cx, 1 | |
mov dx, offset leido | |
mov ah, 3fh | |
int 21h | |
cmp ax, 0 ;ax queda en 0 cuando llega a EOF | |
jz FIN ;si es 0 entonces va a fin para cerrar archivo | |
;Detectar palabras que terminan con a | |
mov dl, leido[0] | |
cmp dl, " " ;comparar si es espacio | |
jz mostrar ;si es espacio entonces ir a mostrar | |
jmp abajo ;si no es espacio entonces ir a abajo | |
mostrar: | |
cmp aux, "a" ;compara si el anterior es a | |
jnz abajo | |
inc cont ;si es a entonces incrementar contador | |
abajo: | |
mov aux, dl ;guardar en aux lo que hay en dl para comparar en la proxima vuelta | |
jmp leer | |
FIN: | |
;cerramos archivo | |
mov bx, handle | |
mov ah, 3eh | |
int 21h | |
ret | |
archivo db "C:\HAZLO.txt", 0 ;ascii del nombre del archivo | |
leido db "$" | |
handle dw ? ;identificador del arhivo | |
aux db "$" | |
cont db 0 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
include 'emu8086.inc' | |
ORG 100h | |
LEA SI, msg1 ; pregunta por el numero | |
CALL print_string ; | |
CALL scan_num ; obtiene numero en CX. | |
MOV AX, CX ; copia numero al AX. | |
; imprime la siguiente cadena: | |
CALL pthis | |
DB 13, 10, 'Has ingresado: ', 0 | |
CALL print_num ; imprime numero en AX. | |
RET ; retorna al sistema operativo. | |
; data | |
msg1 DB 'Ingresa numero: ', 0 | |
; macros para definir procs | |
DEFINE_SCAN_NUM | |
DEFINE_PRINT_STRING | |
DEFINE_PRINT_NUM | |
DEFINE_PRINT_NUM_UNS ; requerido para print_num. | |
DEFINE_PTHIS | |
END ; directiva para detener el compilador. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name "mayor" | |
mov AX, 5 | |
mov BX, 5 | |
;mov DX, AX | |
;CX el valor más grande entre AX Y BX | |
;AX-BX mayor a 0 | |
sub AX,BX | |
js A_MENOR_B | |
mov CX,AX | |
jmp FIN | |
A_MENOR_B: | |
mov CX,BX | |
FIN: | |
;mov AX,DX | |
ret | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
; sumar dos numeros binarios de 24bits y almacenar el resultado | |
; apartir de la localidad de memoria 0206h. (Los bits menos significativos | |
; de los numeros empiezan en las localidades 0200h y 0203h) | |
SUMA: | |
MOV AL, [200] ; Mover el contenido de la localidad 200 a AL | |
ADD AL, [203] ; Sumar la localidad 203 a AL | |
MOV [206], AL ; Mover a la localidad 206 el registro AL | |
MOV AL, [201] ; Mover la localidad 201 a AL | |
ADC AL, [204] ; Sumar la localidad 204 a AL | |
MOV [207], AL ; Mover AL a la localidad 207 | |
MOV AL, [202] ; Mover la localidad 202 al registro AL | |
ADC AL, [205] ; Sumar la localidad 205 al registro AL | |
MOV [208], AL ; Mover el registro AL a la localidad 208 | |
RET ; Retornar | |
MOV AH,4CH | |
INT 21h |