1樓:匿名使用者
求補操作即是把運算元按位求反後末位加1,即ffffh-opr+1=0-opr。也就是說,對一個運算元求補,相當於用0減去此運算元。參加求補運算的運算元當然是有符號數。
對於cf而言,只有對0求補時,cf=0,其餘情況都使cf=1(有借位)。0減去負數應該是正數,但當運算元的值是80h(-128)或8000h(-32768)時,求補後其值保持不變,仍為負數,固產生溢位,of=1。其餘情況都使of=0。
2樓:匿名使用者
neg指令求出目的運算元的負數。如果原來的運算元為正數,在執行neg指令之後,變成負數。反之,原來的運算元為負數,則執行neg指令後就變成正數。
但有一特例,以單位元組數為例:如果原來的運算元為80h,執行neg指令後,仍為80h,但此時溢位標誌of為1.另外,只有當運算元為0時,在執行neg指令後,cf標誌才為0,對於其他數,執行neg指令後,cf標誌總為1。
《微型計算機原理與組合語言程式設計》 p92
關於組合語言移植性的問題,關於組合語言中的LOOP指令
兄弟,你理解錯了,首先你要明白,組合語言是一種針對具體機器的低階語言,這裡說的不同機器一般來講是指cpu指令系統不相相容的兩種機器,比如常用的8086與51,dsp,arm,等等,他們的指令系統都不是通用的。自然移植到別的機器上不行,舉個例子來說吧,假如51,的p0埠可以用來點亮一盞燈,但是對808...
組合語言問題,組合語言問題
蜜蜂小玉米 assume cs code assume ds data data segment db i love you.data ends code segment start mov ax,data mov ds,ax mov bx,0 s0 check mov al,ds bx cmp a...
關於組合語言中的loop指令,關於組合語言中的LOOP指令
這個程式迴圈一次,是由cx存放的。cx中存放的是迴圈的次數 程式設計計算2 12 assume cs code code segment mov ax,2 mov cx,11 s add ax,ax loop s mov ax,4c00h int 21h code ends end執行loop s時...