Aplicaţii
1. Rulaţi pas cu pas următorul program:
.model small
.stack 512
.data
tab_proc dw proc_1
dw proc_2
dw proc_3
tab_procf dd procf_1
dd procf_2
dd procf_3
intra dw etich1
dw etich2
dw etich3
inter dd etif1
dd etif2
.code
proc_1 proc
push dx
pop dx
ret
proc_1 endp
proc_2 proc
push dx
pop dx
ret
proc_2 endp
proc_3 proc
push dx
pop dx
ret
proc_3 endp
procf_1 proc far
push dx
pop dx
ret
procf_1 endp
procf_2 proc far
push dx
pop dx
19
ret
procf_2 endp
procf_3 proc far
push dx
pop dx
ret
procf_3 endp
start: mov ax, @data
mov ds, ax
mov si, 0
jmp inter[si]
etif2 label far
jmp intra
proced: lea bx, proc_1
call bx
call tab_proc
mov si, 2
call tab_proc[si]
lea bx, tab_proc
call word ptr [bx]
mov si, 4
call word ptr [bx][si]
call tab_procf
mov si, 4
call tab_procf[si]
lea bx, tab_procf
call dword ptr [bx]
mov si, 4
call dword ptr [bx][si]
jmp sfarsit
etich1: mov si, 2
jmp intra[si]
etich3 label near
jmp proced
etich2 label near
lea bx, intra
jmp word ptr [bx+4]
etif1 label far
lea bx, inter
mov si, 4
jmp dword ptr [bx][si]
sfarsit:mov ah, 4ch
int 21h
end start
2. Să se scrie un program care să afişeze rezultatul obţinut în urma conversiei unui număr
hexazecimal în zecimal.
3. Să se scrie un program care să calculeze factorialul unui număr şi apoi să afişeze rezultatul.
4. Care este conţinutul registrului AL după executarea următoarei secvenţe de instrucţiuni:
mov al, ‘A’
mov bl, ‘B’
cmp al, bl
jne et1
et2: mov al, 1
jmp sfarsit
et1: mov al, 0
jmp sfarsit
5. Care este conţinutul registrului AL după executarea următoarei secvenţe de instrucţiuni:
masca equ 01000000b
mov al, 10110101b
test al, masca
jz et1
et2: mov al, 1
jmp sfarsit
et1: mov al, 0
jmp sfarsit
1. Rulaţi pas cu pas următorul program:
.model small
.stack 512
.data
tab_proc dw proc_1
dw proc_2
dw proc_3
tab_procf dd procf_1
dd procf_2
dd procf_3
intra dw etich1
dw etich2
dw etich3
inter dd etif1
dd etif2
.code
proc_1 proc
push dx
pop dx
ret
proc_1 endp
proc_2 proc
push dx
pop dx
ret
proc_2 endp
proc_3 proc
push dx
pop dx
ret
proc_3 endp
procf_1 proc far
push dx
pop dx
ret
procf_1 endp
procf_2 proc far
push dx
pop dx
19
ret
procf_2 endp
procf_3 proc far
push dx
pop dx
ret
procf_3 endp
start: mov ax, @data
mov ds, ax
mov si, 0
jmp inter[si]
etif2 label far
jmp intra
proced: lea bx, proc_1
call bx
call tab_proc
mov si, 2
call tab_proc[si]
lea bx, tab_proc
call word ptr [bx]
mov si, 4
call word ptr [bx][si]
call tab_procf
mov si, 4
call tab_procf[si]
lea bx, tab_procf
call dword ptr [bx]
mov si, 4
call dword ptr [bx][si]
jmp sfarsit
etich1: mov si, 2
jmp intra[si]
etich3 label near
jmp proced
etich2 label near
lea bx, intra
jmp word ptr [bx+4]
etif1 label far
lea bx, inter
mov si, 4
jmp dword ptr [bx][si]
sfarsit:mov ah, 4ch
int 21h
end start
2. Să se scrie un program care să afişeze rezultatul obţinut în urma conversiei unui număr
hexazecimal în zecimal.
3. Să se scrie un program care să calculeze factorialul unui număr şi apoi să afişeze rezultatul.
4. Care este conţinutul registrului AL după executarea următoarei secvenţe de instrucţiuni:
mov al, ‘A’
mov bl, ‘B’
cmp al, bl
jne et1
et2: mov al, 1
jmp sfarsit
et1: mov al, 0
jmp sfarsit
5. Care este conţinutul registrului AL după executarea următoarei secvenţe de instrucţiuni:
masca equ 01000000b
mov al, 10110101b
test al, masca
jz et1
et2: mov al, 1
jmp sfarsit
et1: mov al, 0
jmp sfarsit
Niciun comentariu:
Trimiteți un comentariu