汇编预备知识(二)
 
整數(shù)補(bǔ)碼的運(yùn)算
模:計(jì)量器最大容量。如一個(gè)4位寄存器模為2^4,8位寄存器模為2^8。
求補(bǔ)運(yùn)算
設(shè)X=+75,則[X]補(bǔ)=01001011。
設(shè)X=-75,則[X]補(bǔ)=10110101。
 
采用補(bǔ)碼進(jìn)行加法運(yùn)算的規(guī)則為:
[X+Y]補(bǔ)=[X]補(bǔ)+[Y]補(bǔ)
補(bǔ)碼劍法的規(guī)則為:
[X-Y]補(bǔ)=[X]補(bǔ)+[-Y]補(bǔ)
下面舉個(gè)列子:
設(shè)X=66,Y=54,以2^8為模,補(bǔ)碼運(yùn)算為X±Y。
解:[X]補(bǔ)=01000010,[Y]補(bǔ)=00110011,[-Y]補(bǔ)=11001101
[X]補(bǔ) 01000010
+ [Y]補(bǔ) 00110011
--------------------------------------------------
[X+Y]補(bǔ) 01110101
 
[X]補(bǔ) 01000010
+ [-Y]補(bǔ) 11001101
--------------------------------------------------
 
[X-Y]補(bǔ) ? 100001111
在[X-Y]補(bǔ)中最高位(第9位)被運(yùn)算器丟棄,保留在位標(biāo)志寄存器中
所以:X+Y=+117,X-Y=+15
 
下面舉一個(gè)溢出的情況
已2^8為模,補(bǔ)碼運(yùn)算求66+99,-66-99。
解:因?yàn)閇66]補(bǔ)=01000010,[99]補(bǔ)=01100011,[-66]補(bǔ)=10111110,[-99]補(bǔ)=1011101
[66]補(bǔ) 01000010
+ [99]補(bǔ) 01100011
--------------------------------------------------
 
[66+99]補(bǔ) 10100101
 
[-66]補(bǔ) 10111110
+ [-99]補(bǔ) 10011101
--------------------------------------------------
 
[-66-99]補(bǔ) 01011011
最高位(第9位)被運(yùn)算器丟棄,保留在位標(biāo)志寄存器中
 
得到:66+99=-91,-66-99=+91
這是因?yàn)檫\(yùn)算結(jié)果超出了補(bǔ)碼表示的范圍,造成的溢出。
對于有符號數(shù)范圍為:
-2^8-1<=(X,Y,X+Y)<2^n-1
其中n為字長。
 
這節(jié)就到這,節(jié)說二進(jìn)制的相關(guān)技巧和進(jìn)位和溢出
新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎(jiǎng)!定制產(chǎn)品紅包拿不停!總結(jié)
 
                            
                        - 上一篇: 平衡二叉树的实现原理
- 下一篇: Java高级语法笔记-字符集与中文编码
