簡體   English   中英

匯編語言 x86 JL 指令

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM