[英]Assembly Language x86 JL instruction
我在獲得正確答案時遇到了麻煩。 我知道 JL 指令是在左操作數 < 右操作數時跳轉。 我怎么知道哪個是我的右邊或左邊? 當我手工計算時,我選擇了 1111 1110b 作為我的右操作數。 所以,我收到了 00FC 作為十六進制的結果。 在節目中,我收到了00FB,誰能幫我找出我的錯誤? 謝謝!
MOV AL, 1111 1110b
CMP AL, 1111 0110b
JL DEST
DEC AL
DEST: DEC AL
DEC AL
在CMP AL, 1111 0110b
顯然AL
是左操作數,它持有1111 1110b
(這當然有點過於簡化,但這就是選擇Jcc
助記符的方式)。 因此,條件是1111 1110b < 1111 0110b
但比較是有符號的,所以這被解釋為-2 < -10
這不是真的,因此不采取跳轉意味着AL
將減少3
給出0xFB
( -5
)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.