Визначити вміст регістра eax при виконанні наступного коду на мові асемблер ml32 :
start: mov eax,1
or eax,eax
jz exit
jmp mark
@@: mov byte ptr [@f],90h
mov eax,2
jmp @f
mark: cmp eax,-5
ja @b
mov ebx,15
mul ebx
@@: jnp @f
mov eax,3
jmp exit
@@: mov eax,4
exit: ret
Визначити вміст регістра r15 фрагмента виконання програми на мові асемблер ml64:
mas1 db 1,-1,2,-2,3,-3,4,-4,5,-5,6
…
lea rsi,mas1
mov ecx,len1
m2: mov al,byte ptr [rsi];
inc rsi
add al,0
js @f
inc r15
@@: loop m2
invoke wsprintf, ADDR st1,ADDR ifmt,r15
invoke MessageBox,0,addr st1,0,0
Визначити результат виконання фрагмента програми на мові асемблер ml64:
mas1 dd 2 dup(8,9,14,15)
…
mov r14w,word ptr mas1[3
Визначити вміст регістра r15 фрагмента виконання програми на мові асемблер ml64:
arr1 real4 16.1,2.5,32.2,16.1
…
movss xmm1,arr1[0]
movss xmm2,arr1[8]
movss xmm3,arr1[16];
divss xmm2,xmm1 ;
cvttss2si r15d,xmm2
Визначити вміст регістра r15 фрагмента виконання програми на мові асемблер ml64:
mas1 dw 1,2,3,4,5,7,8,9;
len1 equ ($-mas1)/type mas1
…
mov rcx,len1 ;
ror rcx, 4
adc r15,0
Визначити вміст регістра xmm0[0] фрагмента виконання програми на мові асемблер ml64:
arr1 dd 1,2,3,4,5,6,7,8
...
movups xmm0,arr1
movups xmm1,arr1[4]
addps xmm0,xmm1
Визначити вміст регістра r8b фрагмента виконання програми на мові асемблер ml64:
mas1 db 2 DUP(2 DUP(2 DUP(10)))
db 2 dup(01,02,03)
…
mov r8b,byte ptr mas1[9]
Визначити результат виконання фрагмента програми на мові асемблер ml64:
mov r10,1;
sal r10,1;
mov r11,4;
sar r11,1
add r10,r11
Визначити результат виконання фрагмента програми на мові асемблер ml64:
mas1 real8 16.,2.,4.,16.
…
entry_point proc
movsd xmm1,mas1[0]
sqrtsd xmm5,xmm1
addss xmm1,xmm5
cvttss2si eax,xmm1 ;
Визначити результат виконання фрагмента програми на мові асемблер ml64:
matrix dq 1,2,3,4,5
dq 6,7,8,9,10
dq 2,3,4,5,1
…
mov rax,matrix[0][32]
add rax,matrix[8][32]
add rax,matrix[16][64]
Створюйте онлайн-тести
для контролю знань і залучення учнів
до активної роботи у класі та вдома