Obiective: Se prezinta probleme rezolvate care trateaza :
- Utilizarea instructiunii xlat
- Utilizarea macroinstructiunilor
- Utilizarea instructiunii xlat
1. {Conversia unui octet sub forma a doua caractere hexa} Sa se afiseze continutul octetului de la adresa
octet sub forma a doua caractere hexazecimale:
TITLE conversie
.MODEL SMALL
.STACK 10h
.DATA
ascii DB '0123456789ABCDEF'
mesaj DB 2 DUP(?)
DB 13,10,'$'
octet DB 98h
.CODE
begin: mov ax,@DATA
mov ds,ax
mov al,octet
mov ah,al
and al,0F0h
mov cl,4
shr al,cl
lea bx, ascii
xlat
mov mesaj,al
and ah,0Fh
mov al, ah
lea bx, ascii
xlat
mov mesaj+1,al
mov dx,OFFSET mesaj
mov ah,09h
int 21h
mov ax,4C00h
int 21h
END begin
2. Se considera un sir de octeti. Sa se genereze un alt sir care contine nr. de biti egali cu 1 din octetul
corespunzator.
data segment
octeti db 7,5,15,0,1,11,33
n EQU ($-octeti)/type octeti
nrunu db n dup(?)
data ends
cod segment
assume cs:cod,ds:data
2
start: mov ax,data
mov ds,ax
mov cx,n
xor si,si
altoctet:push cx ;salveaza cx
clc
mov al,octeti[si]
mov cx,8
inoctet: shl al,1 ;deplasament stinga cu o pozitie
jnc salt ;cf=0 salt
inc nrunu[si]
salt: loop inoctet
pop cx ;reface cx
inc si
loop altoctet
mov ax,4c00h
int 21h
cod ends
end start
3. {Minidezasamblor pentru instructiunile de salt conditionat} Patru dintre bitii octetului de cod de operatie in
cazul instructiunilor de salt conditionat determina conditia testata de instructiunea respectiva. Observind acest
lucru, sa se faca un program care analizeaza octetul de la adresa octet si in cazul in care reprezinta codul de
operatie al unei instruciuni de salt conditionat sa se afiseze mnemonica instructiunii respective, altfel sa se
afiseze mesajul 'Nu este codul unei instructiuni de salt conditionat'.
Mnemonicele instructiunilor de salt conditionat si codurile acestor instructiuni sint prezentate in tabela
urmatoare:
Documentul este oferit gratuit,
trebuie doar să te autentifici in contul tău.