Академический Документы
Профессиональный Документы
Культура Документы
PRCTICO 3
LLAMADO A SUBRRUTINAS E
INTERRUPCIONES POR SOFTWARE
Mariano Scheifler
SISTEMAS DE COMPUTACION 2
Mariano Scheifler DNI 30.591.206
1
Mariano Scheifler DNI 30.591.206
1) Determinacin de las direcciones a usar con las cifras del: DNI numeradas como sigue:
Ejemplo para DNI N 30.591.206
Direccin de zona de variables: 3059 Direccin de 1 instruccin Programa Principal: 1206
Primera Instruccin Subrutina: 5912 Direccin Subrutina del Sistema Operativo: 6021:9503
2) Teniendo en cuenta las direcciones anteriores, se realizar en principio el Ej. 31 del Libro Assembler desde
Cero. Se verificar su funcionamiento y se imprimir su ejecucin para una secuencia de tres caracteres.
-E 3059
0C9F:3059 1C.03
-E 305A
0C9F:305A 07.4D 1D.41 07.53
-A 1206
0C9F:1206
-A 1206
0C9F:1206 MOV CL, [3059] Carga en CL el numero n de caracteres de la lista
0C9F:120A MOV SI, 305A SI apunta al comienzo de la lista de datos
0C9F:120D MOV DI, 405A DI apunta al comienzo de la lista de resultados
0C9F:1210 MOV AL, [SI] Carga en AL un dato de la lista apuntada por SI
0C9F:1212 SUB AL,30 Resta 30 a AL
0C9F:1214 CMP AL,9 Compara el contenido de AL con 9
0C9F:1216 JBE 121A Si es menor o igual salta a 121A (Si AL < 9 es un smbolo del 0 al 9)
0C9F:1218 SUB AL,7 Resta 7 a AL (Si AL > 9 es un smbolo de A a F, que se halla restando 37, siendo que
antes ya se restaron 30)
0C9F:121A MOV[DI],AL Guarda el resultado en la lista apuntada por DI
0C9F:121C INC DI Incrementa DI
0C9F:121D INC SI Incrementa SI
0C9F:121E DEC CL Decrementa CL
0C9F:1220 JNZ 1210 Mientras Z sea 0, volver a 010A
0C9F:1222 INT 20 Fin
-RIP
IP 0100
:1206
-R
AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000
DS=0C9F ES=0C9F SS=0C9F CS=0C9F IP=1206 NV UP EI PL NZ NA PO NC
0C9F:1206 8A0E5930 MOV CL,[3059] DS:3059=03
--T
-T
3) Ahora se repetir el programa pero convirtiendo la conversin de ASCII a binario en una rutina que se ubicar
a partir de la direccin calculada en el punto 1
0C9F:FFEE 00
00
5
Mariano Scheifler DNI 30.591.206
0C9F:FFEE 00
00
-A 1206
0C9F:1206 MOV CL, [3059]
0C9F:120A MOV SI, 305A
0C9F:120D MOV DI, 405A
0C9F:1210 CALL 5912
0C9F:1213 INC DI
0C9F:1214 INC SI
0C9F:1215 DEC CL
0C9F:1217 JNZ 1210
0C9F:1219 INT 20
-A 5912
0C9F:5912 MOV AL, [SI]
0C9F:5914 SUB AL,30
0C9F:5916 CMP AL,9
0C9F:5918 JBE 591C
0C9F:591A SUB AL,7
0C9F:591C MOV[DI],AL
0C9F:591E RET
-RIP
IP 5912
:1206
-R
AX=001C BX=0000 CX=0003 DX=0000 SP=FFEC BP=0000 SI=305A DI=405A
DS=0C9F ES=0C9F SS=0C9F CS=0C9F IP=1206 NV UP EI PL ZR NA PE NC
0C9F:1206 8A0E5930 MOV CL,[3059] DS:3059=03
-T
8
Mariano Scheifler DNI 30.591.206
--E 405A
0C9F:405A 16. 0A. 1C.
6) Una vez concludos los puntos anteriores, se repetir la ejecucin pero convirtiendo la conversin
de ASCII a binario, mediante una interrupcin por software. INT61
-A 6021:9503
6021:9503 MOV AL, [SI]
6021:9505 SUB AL,30
6021:9507 CMP AL,9
6021:9509 JBE 950D
6021:950B SUB AL,7
6021:950D MOV[DI],AL
6021:950F IRET
IP [61 x 4]
CS [61 x 4 + 2]
I DI
PILA ANTES DE EJECUTAR INT 61
0C9F:FFEC 00
00
10
Mariano Scheifler DNI 30.591.206
EI I
0C9F:FFEC XX
XX
-RIP
IP 1219
:1206
-R
AX=001C BX=0000 CX=0000 DX=0000 SP=FFEC BP=0000 SI=305D DI=405D
DS=0C9F ES=0C9F SS=0C9F CS=0C9F IP=1206 NV UP EI PL ZR NA PE NC
0C9F:1206 8A0E5930 MOV CL,[3059] DS:3059=03
-T
-E FFEC
0C9F:FFEC 13. 12.
-E FFEA
0C9F:FFEA 46. 32.
-E FFE8
0C9F:FFE8 9F. 0C.
-E FFE6
0C9F:FFE6 12. 12.
-T
12
Mariano Scheifler DNI 30.591.206
13
Mariano Scheifler DNI 30.591.206
14