Está en la página 1de 3

1.

Primer programa para entender como utilizar los registros:


ORG 100h
mov ax, 10 ;AX=10
mov bx, 00F9h ;BX=0xF9
inc bx ;BX++
add ax, 4 ;AX=AX+4
mov cx,45 ;CX=45
sub cx,cx ;CX=CX-CX
ret

2. Potencia:
name "potencia" ;8 chars DOS
org 100h ;counter to 100h
mov cx, num2
mov ax, num1
inicio:
mov bx,num1
mul bx ;ax = ax * bx
loop inicio ;c-mov num3,ax ;copiamos el resultado
ret
;Variables "db" para byte y "dw" para word
num1 dw 0Ah
num2 dw 03h
num3 dw 0h

3. Raiz cuadrada:
org 100h
siguiente:
inc r
mov ax, r
mul ax
cmp ax, m
jbe siguiente ;(r*r) MENOR O IGUAL a m
dec r
ret
;Variables
m dw 146
r dw 0 ;Al final debe ser r=sqrt(m).

4. Arreglos:
name "arreglo"
org 100h
;un areglo se puede acceder a travez de []
mov cx, 9 ;cuantos elementos voy a recorrer, empezamos con el 9
inicio:
mov si, cx
mov dl, v[si]
cmp dl, mayor

jng siguiente:
mov mayor,dl
siguiente:
loop inicio
ret
v db 1,32,64,32,98,12,5,21,91,38
mayor db 0

5. Saber si un numero es mayor:


name "mayor"
mov AX, 5
mov BX, 5
;mov DX, AX
;CX el valor ms 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

6. Multiplicacion:
ORG
MOV
MOV
MUL

100h
AL, 200 ; AL = 0C8h
BL, 4
BL ; AX = 0320h (800)

RET

7. Interrupciones (Ejemplo de 21h):


name "int01"
org 100h
mov ah, 1 ;Leer un caracter de la entrada estandar
int 21h ;Llamada al sistema operativo (DOS)
mov tecla, al
mov ah, 2 ;imprime un simbolo a la consola
mov dl, simbolo ;el caracter a mostrar, en este caso la E
int 21h ;Llamada al DOS
inc
mov
mov
int

tecla
ah, 7 ;NO imprime un simbolo a la consola
dl, tecla ;
21h ;Llamada al DOS

ret
;Variables
tecla db 0
simbolo db 45H
;ah que queres hacer
;ah = 1 guarda caracter en al
;ah = 2 escribe un caracter en la consola. El ascii del cacacter a
imprimir se pone el dl
;AH = 7 es igual a el ah=2 pero el resultado no se ve en pantalla
;ah = 9 imprime una cadena en la consola. Considera el caracter $ como
fin de cadena.
;La direccion de la cadena se expresa en DX

8. Cadenas:
org
mov
mov
mov
int
ret
msg

100h
msg[2], 34H
dx, offset msg
ah, 9
21h
db "hello world $"

9. Cambiar a maysculas:
name "int02"
ORG 100H
lectura:
mov ah,7
int 21h
mov tecla, al
cmp al,13
jz fin:
cmp tecla, 122 ;si tecla es mayor a 122 entonces ir a fin3 (tecla >
122)
ja fin3
cmp tecla,96 ;si tecla no es mayor a 96 ir a fin3 (tecla <= 96)
jng fin3
sub tecla, 32 ;si es 'a' hasta 'z' entonces restarle 32
fin3:
mov ah,2
mov dl,tecla
int 21h
jmp lectura
fin:
ret
tecla db 0

También podría gustarte