Trabajo Grupal - Ejercicios para EMU8086
Trabajo Grupal - Ejercicios para EMU8086
Trabajo Grupal - Ejercicios para EMU8086
final:
mov dx, offset msg3
mov ah, 9
int 21h
fin:
ret
msg db "hello world $"
msg2 db "hello world $"
msg3 db "Son iguales $"
x dw 0
org 100h
mov si, 0 ;ponemos si en 0
comienzo:
mov al, msg2[0] ;copiar la primera letra de la palabra a al
cmp msg[si],"$" ;si es el fin de la cadena mandar a final
jz final
cmp msg[si], al ;comparar si encuentra la primera letra de la cadena
jne seguir
cmp msg2[di],"$" ;si es el fin de la cadena y el programa llego aca quiere decir
que la cadena es parte de la palabra
jz resultado
seguir:
inc si ;para seguir recorriendo la palabra
loop comienzo ;bucle principal para recorrer palabra
resultado:
mov dx, offset msg3 ;copiar msg3 a dx
mov ah, 9 ;preparar ah con 9 para la interrupcion 21h
int 21h ;mostrar contenido en dx
final:
ret
msg db "Hola Mundo$"
msg2 db "ola$"
bucle1:
mov dx, cx
mov al, color ;AL = pixel color
mov ah, 0ch ;Change color for a single pixel
int 10h ;set pixel
.model small
.stack 64
.data
nom db 'FAUSTINO','$'
ape db 'VAZQUEZ','$'
nomcom db 'ABCDEFGHIJKLMNO','$'
.code
begin proc far
mov ax,@data
mov ds,ax
mov es,ax
mov cx,08
lea si,nom
lea di,nomcom
b20:
mov al,[si]
mov [di],al
inc si
inc di
dec cx
jnz b20
mov cx,07
lea si,ape
b21:
mov al,[si]
mov [di],al
inc si
inc di
dec cx
jnz b21
mov ah,09h ;peticion para desplegar
lea dx,nomcom ;carga la direccion de la indicacion
int 21h ;llama al dos
mov ax,4c00h
int 21h
begin endp
end begin
data segment
NN db 0
dig db 0
aux db 0
ends
stack segment
dw 128 dup(0)
ends
code segment
start:
; set segment registers:
mov ax, data
mov ds, ax
mov es, ax
bucle:
call leer3 ; en dig esta el numero ascii
cmp dig,0Dh
je salir
sub dig, 30h
mov al,1010b
mul NN
add al,dig
mov NN,al
jmp bucle
;PROCESOS
salir:
call mostrar3
mov ax, 4c00h
int 21h
ret
mostrar3:
mov cx,08h
bucle2:
rol nn,01h
adc aux,00h
leer3:
mov ah, 01h
int 21h
mov dig,al
ret
ends
stack segment
dw 128 dup(0)
ends
code segment
start:
; set segment registers:
mov ax, data
mov ds, ax
mov es, ax
;DIVISION-----------------------------------------------
xor ax,ax ;limpiamos el registro ax.
mov bl,02h ; 2
mov al,N ;el N
div bl ; divide AX/BX el resultado lo almacena en AX, el residuo queda en
DX
mov N,al ; en AL esta el resultado de N/2
;--------------------------------------------------
mov cl,N
mov ch,00h
bucle:
lea dx,nom
mov ah,09h
int 21h
cmp cx,00h
sub cx,01h
jnz bucle
mov ax, 4c00h ; exit to operating system.
int 21h
ends