Определить значения регистров после выполнения фрагмента программы - Assembler

Узнай цену своей работы

Формулировка задачи:

Дан фрагмент программы на ассемблере:
push BX
push CX
push DX
push AX
mov AX,3508h
add BX,AX
pop AX
pop DX
mov AX,CX
shl BX,1
not AX
Даны начальные значения регистров AX,BX,CX,DX. Определить значения этих регистров после выполнения данного фрагмента. AX=7777h, BX=6666h, CX=5555h, DX=4444h

Решение задачи: «Определить значения регистров после выполнения фрагмента программы»

textual
Листинг программы
mov AX,3508h;ax=3508h
add BX,AX   ;bx=6666h+3508h=9B6Eh
pop AX      ;ax=7777h
pop DX      ;dx=4444h
mov AX,CX   ;ax=5555h
shl BX,1    ;bx=36DCh
not AX      ;ax=0AAAAh
 
;ax=0AAAAh bx=36DCh cx=5555h dx=4444h

Объяснение кода листинга программы

  1. mov AX,3508h — AX = 3508h
  2. add BX,AX — BX = 6666h + 3508h = 9B6Eh
  3. pop AX — AX = 7777h
  4. pop DX — DX = 4444h
  5. mov AX,CX — AX = 5555h
  6. shl BX,1 - BX = 36DCh
  7. not AX — AX = 0AAAAh

Оцени полезность:

6   голосов , оценка 4.167 из 5
Похожие ответы