assembler

Páginas: 5 (1043 palabras) Publicado: 28 de noviembre de 2015
ORLAUSKAS ANGEL
Trabajo Practico Sistemas de Computacion Assembler
Ejercicios:
1)
R=P+Q-T
P 16 .10
Q 32 .20
T 64 .40
-a 100
Mov ah,[200]
Add ah,[300]
Sub ah,[400]
Mov[700],ah
ret
-g
2)Considerar una multiplicacion como una suma y tomar una accion correctiva.
200 10.00
300 11.00
A100 mov cx,[300] mueve lo que esta en la posición de memoria 300 a cx
Mov bx,[200] mueve lo que esta en “ ““ “ 200 a bx
tito Sub ax, ax dejo ax en “0”
jo 140 (jump overflow) se produce la acción correctiva si hay overflow y va a 140
dec cx decrementa cx
jnz tito si no es cero va a la posición de memoria (tito)
lolo mov[1100],ax lo que esta en ax lo guardo en la posición de memoria 1100
ret.
A140 mov ax,FFFF
Jump lolo
3)Dada una lista de enteros de 2 bytes hallar la suma.
E700
.03 cargo en la posición de memoria 700 la cantidad de números que voy a utilizar
E 1000
3A.10 F3.00 45.96 cargo la lista en la posición 1000
A100
Mov cl,[700] cargo en cl la cantidad de enteros a operar
Mov si,1000 (puntero de lista)
Sub ax,ax dejo ax en “0”
Tito add ax ,[si] cargo en ax el primer numero de la lista.
Add si,2 incremento si en 2
Dec cl decremento cl
Jnztito si no es cero salto a tito (jump no zero)
Mov[2000],ax guardo en la posición de memoria 2000 lo que esta en ax
Ret.
3) como ejercicio adicional sumar una lista de números enteros de 1 byte dejando acentuado la posición de memoria 7000-
Mov cl, [7000] asigno a cl la posición 7000
Mov si, 1000 cargo al puntero de lista lo que esta en 1000
Sub ah, ah dejo ah en cero
Add si,1(como es un byte incremento si solo en uno)
Dec cl decremento cl
Jnz tito si no es cero salto a tito
Mov[2000],ah lo que esta en ah lo guardo en la posición 2000
4)Cuantas letras “E” (45) hay en la lista.
E 700
.07 cargo en 700 la cantidad de números a operar
E 1000
.34 .45 .41 .30 .45 .47 .45 (cargo en 1000 la lista)
A 100
Mov cl,[700] cargo en cl la cantidad de números a operar.Mov si,1000 (puntero de lista)
Mov di,2000 asigno la posición de memoria 2000 a di
Sub bl,bl dejo bl en cero
Lolo mov al,[si] transfiero el primer numero de si a al
Cmp al,45 comparo ese numero que transferi a al con (E)
Jnz pocho si no es cero paso a pocho
Inc bl incremento bl
Mov[di],si guardo si en la posición de memoria di
Add di,2 incremento di en 2
Pocho inc siincremento si
Dec cl decremento cl
Jnz lolo jump no zero lolo
Mov[7000],bl
Ret
5) Si tenemos una lista de números naturales cuantas veces se repite en esta lista la tetra A y el numero 7, contar cada uno de ellos y guardarlos en una lista de salida .
E 700
.06 cargo en 700 la cantidad de números a operar
E 1000
.37 .41 .14 .37 .15 .16
A100
Mov cl, [700] cargo en cl la cantidad de números aoperar
Mov si, 1000 (puntero de lista)
Mov di, 2000 asigno la posición 2000 a di
Mov bx, 3000 asigno la posición 3000 a bx
Sub dx , dx dejo dx en cero
Toto mov al,[si] paso el primer numero que esta en si a al
Cmp al,41 comparo ese numero que pase en al punto anterior con 41
Jz 140 si es zero salto a 140
Pocho inc si incremento si
Dec cl decremento cl
Jnz toto si no es zerosalto a toto
Mov[7000],dh guardo en la posición 7000 lo que me va quedando en dh
Mov[8000],dl guardo en la posición 8000 lo que me va quedando en dl
Ret
Rip
-g
A140
Mov[di],si en este momento paso lo que esta en “si” a la posicion di
Add di,2 incremento di en 2
Jnz pocho si no es zero salta a pocho
A150
Mov [bx],si en este momento paso lo que esta en “si” a la posicion bx
Add bx,2incremento bx en 2
Inc dl incremento dl
Jnz pocho si no es zero salto a pocho
6)Dada una lista de caracteres de 10 nros. , sumarlos de a pares y guardarlos en una lista de salida.
E700
.0A (los 10 numeros a cargar)
E1000
.10 .20 .30 .40 .50 .60 .70 .80 .11 .12(lista)
A100
Mov di,2000 asigno a di la posición de memoria 2000
Mov cl,[700] cargo la cantidad de números que están en cl en...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Assembler
  • Assembler
  • Pwm Assembler
  • Intrupciones Assembler
  • Calculadora Assembler
  • Leds
  • Sumatoria Assembler
  • Interrupciones en assembler

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS