Vous êtes sur la page 1sur 5

ARQUITETURA E ORGANIZAO DE COMPUTADORES

RELATRIO DA PRTICA DE LABORATRIO 1


ALUNOS: ANTONIO CARLOS SOARES JUNIOR
GUSTAVO ALEX RECH SAAVEDRA TERAN

EXERCCIO 1:
(P1) Qual o valor do ponteiro de instrues IP logo aps a entrada no Debug? E dos
registradores de
uso geral?
IP = 0100
AX=0000
BX=0000
CX=0000
DX=0000
Programa 1 - EX1.COM
13C6:0100 B80000
MOV AX,0000
13C6:0103 056745
ADD AX,4567
13C6:0106 A30002
MOV [0200],AX
13C6:0109 C70600020100 MOV WORD PTR [0200],0001
13C6:010F C70602020200 MOV WORD PTR [0202],0002
13C6:0115 C70604020300 MOV WORD PTR [0204],0003
13C6:011B BB0200
MOV BX,0002
13C6:011E BE0200
MOV SI,0002
13C6:0121 31C0
XOR AX,AX
13C6:0123 03060002
ADD AX,[0200]
13C6:0127 31C0
XOR AX,AX
13C6:0129 03870002
ADD AX,[BX+0200]
13C6:012D 31C0
XOR AX,AX
13C6:012F 03870002
ADD AX,[BX+0200]
13C6:0133 31C0
XOR AX,AX
13C6:0135 03800002
ADD AX,[BX+SI+0200]
13C6:0139 31C0
XOR AX,AX
13C6:013B 0300
ADD AX,[BX+SI]
13C6:013D 0000
ADD [BX+SI],AL

(P2) Explique por que, ao assemblar esse cdigo com o Debug, possvel omitir o prefixo
word ptr na terceira linha de programa (e tambm em todas as instrues add
experimente!), mas no nas trs linhas subsequentes.
Porque quando o destingo um registrador ele j de 16 bits e palavra word serve para
alocar 16 bits

(P3) Explique a diferena entre as seguintes duas instrues seguintes em linguagem


assembly (ex-perimente caso tenha dvidas)
mov ax,200
move o valor 200 para ax
mov ax,[200]
move o contedo da posio 200 para ax

(P4) Qual a diferena entre as instrues mov ax,0 e xor ax,ax ? Qual a vantagem de se utilizar uma ou outra?
mov ax,0 e xor ax,ax
a diferena que na mov ax,0 estamos atribuindo 0 a ax, ja o comando xor ax,ax no
depende de uma constante por isso vantajosa ocupando menos espao e sendo mais
rpida

(P5) Descubra o comprimento em bytes de seu arquivo e salve-o com o comando w (write),
no sem antes ajustar os registradores BX:CX para o comprimento desejado.
bx=00 cx=3c

(P6) O que ocorrer se CX e BX forem nulos quando executarmos o comando w (write)?


cria um arquivo com 0 bytes

EXERCCIO 2:
Programa 2 - DATER.COM
13C6:0100 BA8200
MOV DX,0082
13C6:0103 BF8200
MOV DI,0082
13C6:0106 B00D
MOV AL,0D
13C6:0108 B90C00
MOV CX,000C
13C6:010B F2
REPNZ
13C6:010C AE
SCASB
13C6:010D C645FF00
MOV BYTE PTR [DI-01],00
13C6:0111 B43D
MOV AH,3D
13C6:0113 B002
MOV AL,02
13C6:0115 CD21
INT 21
13C6:0117 720E
JB
0127
13C6:0119 89C3
MOV BX,AX
13C6:011B B457
MOV AH,57
13C6:011D B001
MOV AL,01
13C6:011F B90000
MOV CX,0000
13C6:0122 BA2102
MOV DX,0221
13C6:0125 CD21
INT 21
13C6:0127 B8004C
MOV AX,4C00
13C6:012A CD00
INT 00

(P7) De que forma voc determinou o tamanho do arquivo para salv-lo aps t-lo digitado?
verifiquei o ultimo endereo de memria e o primeiro, fazendo a subtrao entre eles
encontramos a quantidade de endereos ocupados

(P8) O que o PSP de um programa, qual o seu tamanho e que dados so armazenados
nele a par-tir do offset 80 h? (Dica: consulte o QuickHelp).
Program segment prefix, O PSP um segmento de 256 bytes criado pelo Sistema
Operacional quado o programa carregado. Neste segmento esto vrias informaes teis
como as strings passada via linha de comando por exemplo.

(P9) Como funcionam as instrues scasx (x=b,w,d)? Por que CX foi carregado com o valor
12?
Compara o byte, palavra ou palavra dupla especificado com o operando de memria com o
valor
na AL(scasb), AX(scabw), ou registrador EAX(scasd).

(P10) O que fazem os servios 3d h e 57 h do DOS? Explique os possveis modos de


operao do
servio 3d h e detalhe como so utilizados os registradores CX e DX no caso do servio 57
h.
3D -> Abre um arquivo existente. modos de acesso e compartilhamento.
57 -> Obtem ou ajusta a data de um arquivo. cx=time, dx=date
(P11) Quais as outras alternativas para se encerrar um programa DOS? Qual a diferena
entre elas?
int 21h, AH=4CH -> termina com cdigo de retorno, AL=Cdigo de retorno
int 20h
-> termina o programa sem cdigo de retorno
(P12) Ao executar as instrues int preciso utilizar o comando p (proceed) do Debug em
vez de t
(trace) Por que? Qual a diferena entre os dois comandos?
com o comando p (proceed) a interrupo ser executada rapidamente, j com o comando
t(trace) a
interrupo ser executada passo a passo.
(P13)
O programa na consegue abrir o arquivo porque o servies est configurado para ler
apenas 12
caracteres. Para corrigir o problema basta aumentar o valor de cx que guarda o nmero de
caracteres a serem lidos.

(P14) --- Exerccio 3 - Desafio


13C6:0100 EB3E

JMP 0140
db 0d,0a,"Data alterada com sucesso!",0d,0a,"$"
db 0d,0a,"Houve um erro. codigo = XX",0d,0a,"$"
13C6:0140 BA8200
MOV DX,0082
13C6:0143 BF8200
MOV DI,0082
13C6:0146 B00D
MOV AL,0D
13C6:0148 B90C00
MOV CX,000C
13C6:014B F2
REPNZ
13C6:014C AE
SCASB
13C6:014D C645FF00 MOV BYTE PTR [DI-01],00
13C6:0151 B43D
MOV AH,3D
13C6:0153 B002
MOV AL,02
13C6:0155 CD21
INT 21
13C6:0157 723B
JB
0194
13C6:0159 89C3
MOV BX,AX
13C6:015B B457
MOV AH,57
13C6:015D B001
MOV AL,01
13C6:015F B90000
MOV CX,0000
13C6:0162 BA2102
MOV DX,0221
13C6:0165 CD21
INT 21
13C6:0167 7324
JNB 018D
13C6:0169 89C3
MOV BX,AX
13C6:016B 80E4F0
AND AH,F0
13C6:016E 88E7
MOV BH,AH
13C6:0170 88D8
MOV AL,BL
13C6:0172 240F
AND AL,0F
13C6:0174 88C3
MOV BL,AL
13C6:0176 80C730
ADD BH,30
13C6:0179 80C330
ADD BL,30
13C6:017C 883E3B01 MOV [013B],BH
13C6:0180 881E3C01 MOV [013C],BL
13C6:0184 B409
MOV AH,09
13C6:0186 BA2101
MOV DX,0121
13C6:0189 CD21
INT 21
13C6:018B EB07
JMP 0194
13C6:018D B409
MOV AH,09
13C6:018F BA0201
MOV DX,0102
13C6:0192 CD21
INT 21
13C6:0194 B8004C
MOV AX,4C00
13C6:0197 CD00
INT 00