Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
MICROPROGRAMACION.
MIP-115
CICLO I-2006
JVASQUEZ. 1
UNIVERSIDAD DE EL SALVADOR
MICROPROGRAMACION.
MIP-115
CICLO I-2006
JVASQUEZ. 2
UNIVERSIDAD DE EL SALVADOR
MICROPROGRAMACION.
MIP-115
CICLO I-2006
Para ver la lista de comandos que Debug posee, basta que una vez hayamos
entrado, digitemos el carcter de interrogacin ? y presionemos la tecla
enter, dando la lista de los comandos disponibles.
Vamos a ver a continuacin para que sirve cada uno de ellos, as como un
ejemplo de su uso.
JVASQUEZ. 3
UNIVERSIDAD DE EL SALVADOR
MICROPROGRAMACION.
MIP-115
CICLO I-2006
Comparar
C [Com1] L [Longitud] [Com2]
Realiza una comparacin byte a byte entre dos bloques de memoria. Se le
deben ingresar 3 parmetros, direccin de comienzo primer bloque, direccin
de final del primer bloque y direccin de comienzo segundo bloque.
JVASQUEZ. 4
UNIVERSIDAD DE EL SALVADOR
MICROPROGRAMACION.
MIP-115
CICLO I-2006
Volcar
D [Direccin Inicial] [Direccin Final]
Muestra un espacio de memoria mostrando byte a byte en formato
hexadecimal (recuerde que esta herramienta toma todos los datos en formato
hexadecimal). En el caso que no se den argumentos y sea el primer comando
de este tipo que se da en ensamblador, lo que har es volcar la memoria a
partir de la direccin XXXXh:0100h. Si ya se ha ejecutado el comando y
nuevamente se introduce sin argumentos, entonces mostrara el contenido de la
memoria a partir de la direccin donde se quedo el volcado anterior (Ver
figura), mostrndonos los 80H bytes. La otra forma de utilizar el comando, y
que es la mas comn, es dando la direccin inicial y final; por ejemplo si
queremos mostrar el contenido de la memoria desde la direccin
xxxxH:0200H hasta la xxxxH:0207H, entonces digitamos lo siguiente:
D 200 207. (o tambin D 200 L 8 ; donde L nos sirve para poder indicar la
longitud en bytes de la memoria a mostrar)
Introducir
E direccin [lista]
Este comando nos permite poder modificar el valor de una o unas
determinadas posiciones de memoria. La sintaxis que se debe seguir es
escribir E, luego la direccin a partir de la cual se desea modificar los valores
y por ultimo la lista de valores a ingresar a partir de esta direccin (Vea la
figura siguiente). En el caso que no se de una lista de valores, entonces se
mostrara el actual valor de la posicin de memoria que se digito, y despus de
un punto se espera que se introduzca el nuevo valor. En caso de no querer
modificar el valor, puede presionar Enter o escribir el mismo valor. Y en caso
JVASQUEZ. 5
UNIVERSIDAD DE EL SALVADOR
MICROPROGRAMACION.
MIP-115
CICLO I-2006
Llenar
F Direccin Inicial [Direccin final] [Valor]
Este comando llena una porcin de memoria especificada por la direccin
inicial hasta la direccin final con el valor o cadena que se haya digitada. En
caso que no se de la direccin final, entonces se llenara con la cadena los 80H
bytes a partir de la direccin inicial.
JVASQUEZ. 6
UNIVERSIDAD DE EL SALVADOR
MICROPROGRAMACION.
MIP-115
CICLO I-2006
Ir
G [=direccin][direcc.]
El nombre puede resultar confuso, pero no indica un salto, sino que ejecuta el
cdigo a partir de la direccin especificada por CS:IP, o tambin se puede
especificar la direccin a partir de la cual se desea que ejecute el cdigo,
teniendo en consideracin que esta direccin debe de estar precedida del signo
=. La segunda direccin (opcional) indicara donde quiere que se detenga su
programa. Como puede ver en la figura de abajo, se ejecuta el programa desde
la direccin CS:0100H hasta CS:0108H por lo que se detiene antes de ejecutar
la siguiente instruccin (MOV AX,4C00H)
Aritmtica Hexadecimal
H valor1 valor2
Este comando nos devuelve el resultado de sumar y restar los valores que se
han dado como parmetros.
Entrada
I puerto
Permite leer la direccin de I/O indicada, devolviendo su valor.
JVASQUEZ. 7
UNIVERSIDAD DE EL SALVADOR
MICROPROGRAMACION.
MIP-115
CICLO I-2006
Cargar
L [direccin]
Este comando trabaja en conjunto con el comando N, y su funcin en cargar
en memoria el programa especificado segn la direccin, y en caso que no se
especifique la direccin, esta se tomara a partir de la direccin 0100H.
La longitud del programa queda guardada en los registros BX:CX.
Vea el ejemplo de cmo guardar y cargar un programa utilizando DEBUG.
Mover
M [Direccin inicial] [Direccin final] [Direccin de destino]
Copia una porcin de memoria (delimitada entre las direcciones inicial y final)
en otra, la cual se especifica por medio de la direccin de destino.
Nombre
N [ruta y nombre]
Permite ingresar el nombre del programa. Trabaja en conjunto con los
comandos L y W, ya que dicho nombre lo utilizan las instrucciones antes
mencionadas.
Vea el ejemplo de cmo guardar y cargar un programa utilizando DEBUG.
Salida
O [puerto] [byte]
Permite enviar un byte a la direccin de I/O indicada.
JVASQUEZ. 8
UNIVERSIDAD DE EL SALVADOR
MICROPROGRAMACION.
MIP-115
CICLO I-2006
Continuar
P[=direccin][nmero]
Este comando nos permite ejecutar un programa paso a paso similar al
comando T, con la diferencia que salta las llamadas Call o Int. Este comando
adems nos va mostrando el estado de los registros, as como la instruccin
que se va a ejecutar.
Se puede saltar a una direccin especificada y luego ejecutar un nmero de
lneas.
Salir
Q
Comando para salir del Debug.
Registro
R [registro]
Este comando nos muestra el contenido de todos los registros, banderas y la
direccin que se va a ejecutar (CS:IP), en caso que no le demos un nombre de
un registro en particular. En caso que le demos el nombre de un registro en
particular, entonces nos mostrara su valor, as como nos permitir poder
modificarlo. En caso de no querer modificarlo, simplemente presione la tecla
Enter. Pruebe RF, RAX, RBX, etc.
JVASQUEZ. 9
UNIVERSIDAD DE EL SALVADOR
MICROPROGRAMACION.
MIP-115
CICLO I-2006
Buscar
S [direccin Inicial] [direccin Final] [Lista]
Busca una lista de valores entre dos direcciones de memoria. Estas direcciones
deben de estar dentro del mismo segmento. La lista puede ser una cadena de
caracteres o una secuencia de valores en hexadecimal. Esta instruccin
devuelve las direcciones a partir de las cuales se encuentra una coincidencia
exacta con la lista a buscar.
Seguir
T [=direccin][valor]
Este comando nos permite ejecutar un programa paso a paso similar al
comando P, con la diferencia que entra a las llamadas Call o Int. Este
comando adems nos va mostrando el estado de los registros, as como la
instruccin que se va a ejecutar.
Se puede saltar a una direccin especificada y luego ejecutar un nmero de
lneas.
JVASQUEZ. 10
UNIVERSIDAD DE EL SALVADOR
MICROPROGRAMACION.
MIP-115
CICLO I-2006
Desensamblar
U [rango]
Desensambla un rango de memoria. Se puede dar un rango, dando la direccin
inicial y final, o solamente la direccin inicial, en cuyo caso mostrara una
serie de lneas (20H bytes de memoria). En caso que no se indique ningn
valor, desensambla el programa a partir de la ltima direccin que
desensamblo.
JVASQUEZ. 11
UNIVERSIDAD DE EL SALVADOR
MICROPROGRAMACION.
MIP-115
CICLO I-2006
Escribir
W[direccin]
Escribe en el disco el archivo indicado con la funcin N a partir de la
direccin que se indica. En caso que no se indique, el programa se escribe a
partir de la direccin XXXX:0100H. La cantidad de bytes a guardar se
especifican por medio de la combinacin de los registros BX y CX, de manera
que el valor de los N bytes a almacenar ser BX:CX
Vea el ejemplo de cmo guardar y cargar un programa utilizando DEBUG.
CMO GUARDAR Y CARGAR UN PROGRAMA UTILIZANDO DEBUG
Los pasos para guardar un programa ya almacenado en la memoria son:
JVASQUEZ. 12
UNIVERSIDAD DE EL SALVADOR
MICROPROGRAMACION.
MIP-115
CICLO I-2006
JVASQUEZ. 13
UNIVERSIDAD DE EL SALVADOR
MICROPROGRAMACION.
MIP-115
CICLO I-2006
Banderas
Como ya sabemos, podemos ver el contenido de los registros y las banderas gracias a comando r de Debug. El
contenido de esta ser interpretado de acuerdo a la siguiente tabla:
Banderas
Activo
No activo
(BIT a
(BIT a 0)
1)
Desbordamiento: SI el resultado de una operacin con signo ha
Desborde
OV
NV
excedido la capacidad del microprocesador
Decremento
Direccin: Controla el incremento o decremento de los registros
DN
UP
ndice SI y DI en las instrucciones de cadenas.
Interrupcin: Habilita la entrada de interrupciones.
Interrupcin
EI
DI
Signo: Indica el signo de la ultima operacin aritmtica.
Cero: indica si el resultado de la ltima operacin fue o no cero.
Acarreo auxiliar: ocurre cuando en una operacin aritmtica, se
produzco un acarreo entre la parte menos significativa y la mas
significativa del resultado.
Paridad: cuenta la cantidad de unos de la ltima operacin.
Acarreo: indica un acarreo o un prstamo en la ltima operacin
aritmtica, usado tambin en operaciones de Corrimiento y como
indicador de error en ciertos programas.
No Desborde
Incremento
NG
ZR
AC
Negativo
Cero
Acarreo
PL
NZ
NA
No hubo
interrupcin
Positivo
No cero
No Acarreo
PE
CY
Par
Acarreo
PO
NC
Impar
No Acarreo
JVASQUEZ. 14
UNIVERSIDAD DE EL SALVADOR
MICROPROGRAMACION.
MIP-115
CICLO I-2006
C823
1100 1000 0010 0011
Hexadecimal
Binario
Datos Obtenidos:
Bits
Dispositivos
15,14 Nmero de puertos paralelos
13,12 Reservados
11,10,9 Nmero de puertos seriales
conectados
8
Reservado
Resultado
Comentario
11
3 puertos
paralelos
00
0
100
4 puertos
seriales
0
0
JVASQUEZ. 15
UNIVERSIDAD DE EL SALVADOR
MICROPROGRAMACION.
MIP-115
CICLO I-2006
7,6
5,4
2,3
1
0
00
10
80 * 1225
a color
00
1
0
Hay
coprocesador
Hay una
presente
0280
640
Hexadecimal
decimal
JVASQUEZ. 16
UNIVERSIDAD DE EL SALVADOR
MICROPROGRAMACION.
MIP-115
CICLO I-2006
Verificacin del nmero de serie y la nota de derechos reservados(Localidad :
FE000H)
JVASQUEZ. 17
UNIVERSIDAD DE EL SALVADOR
MICROPROGRAMACION.
MIP-115
CICLO I-2006
Verificacin de la fecha en el ROM BIOS (FFFF5H)
Para esta computadora, la fecha es 03/29/04 es decir del 29 de marzo del 2004.
El conocimiento de esta fecha puede ser til para determinar la edad y modelo
de la computadora
Verificacin de la identificacin del modelo (FFFFEH)
El conocimiento de esta fecha puede ser til para determinar la edad y modelo
PS/2 modelos 70 y 80
PC convertible
PS/2 modelo 30
PC-XT (1986)
PC-AT, PC-XT modelo 286, PS/2 modelos 50 y 60, etc.
PC-XT (1982), porttil (1982)
Primera IBM PC
JVASQUEZ. 18