




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、IBM-PC匯編語言程序設(shè)計(jì)匯編語言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與技術(shù)系計(jì)算機(jī)科學(xué)與技術(shù)系參考資料參考資料1.匯編語言匯編語言王爽王爽 清華大學(xué)出版社清華大學(xué)出版社2. IBM PC 匯編語言與程序設(shè)計(jì)例題習(xí)題集匯編語言與程序設(shè)計(jì)例題習(xí)題集 溫冬嬋溫冬嬋 沈美明沈美明 清華大學(xué)出版社清華大學(xué)出版社考核方式考核方式平時作業(yè)平時作業(yè) +出勤率出勤率 20上機(jī)實(shí)驗(yàn)上機(jī)實(shí)驗(yàn) 10%考考 試試 70 作業(yè)在每次上課的時候交到講臺上作業(yè)在每次上課的時候交到講臺上 計(jì)算機(jī)語言的發(fā)展計(jì)算機(jī)語言的發(fā)展 機(jī)器語言機(jī)器語言FORTRANBASICCOBOLPASCALC/C+JAVA.匯編語言匯編語言高級語言高級語言匯編語言
2、的特點(diǎn)匯編語言的特點(diǎn) 面向機(jī)器的低級語言,通常是為特定的計(jì)算面向機(jī)器的低級語言,通常是為特定的計(jì)算 機(jī)或計(jì)算機(jī)系列機(jī)或計(jì)算機(jī)系列專門設(shè)計(jì)的。專門設(shè)計(jì)的。 保持了機(jī)器語言的優(yōu)點(diǎn),具有直接和簡捷保持了機(jī)器語言的優(yōu)點(diǎn),具有直接和簡捷 的特點(diǎn)。的特點(diǎn)。 可有效地訪問、控制計(jì)算機(jī)的各種硬件設(shè)備可有效地訪問、控制計(jì)算機(jī)的各種硬件設(shè)備, , 如磁盤、存儲器、如磁盤、存儲器、CPUCPU、I/OI/O端口等。端口等。 目標(biāo)代碼簡短,占用內(nèi)存少,執(zhí)行速度快,目標(biāo)代碼簡短,占用內(nèi)存少,執(zhí)行速度快, 是高效的程序設(shè)計(jì)語言。是高效的程序設(shè)計(jì)語言。 經(jīng)常與高級語言配合使用,應(yīng)用十分廣泛。經(jīng)常與高級語言配合使用,應(yīng)用十分
3、廣泛。 學(xué)習(xí)匯編語言,重要的是掌握如何通過匯編指令和學(xué)習(xí)匯編語言,重要的是掌握如何通過匯編指令和程序來控制計(jì)算機(jī)各個組成部件工作,完成一系列程序來控制計(jì)算機(jī)各個組成部件工作,完成一系列任務(wù)。任務(wù)。 學(xué)會了匯編語言,就能夠?qū)W(xué)會了匯編語言,就能夠?qū)PU的寄存器進(jìn)行控的寄存器進(jìn)行控制和操作,掌握直接對計(jì)算機(jī)硬件編程的方法。制和操作,掌握直接對計(jì)算機(jī)硬件編程的方法。 本章介紹學(xué)習(xí)匯編語言所需的基本知識,并通過本章介紹學(xué)習(xí)匯編語言所需的基本知識,并通過具體的例子為讀者建立起匯編語言的初步概念。具體的例子為讀者建立起匯編語言的初步概念。為什么學(xué)習(xí)匯編語言#include stdafx.h #inclu
4、de stdio.h int main(int argc, char* argv) int a,b,c; a=1; b=2; c=a+b; printf(“c=%dn,c); return 0; 編譯后的目標(biāo)文編譯后的目標(biāo)文件達(dá)到件達(dá)到3.59KBdata segmenta db ?b db ?c db ?string db c=$data endscode segmentmain proc far assume cs:code, ds:data, es:datastart: push ds sub ax,ax push ax mov ax,data mov ds,ax mov es,axmo
5、v a,1 mov b,2 mov al,a add al,b mov c,al lea dx,string mov ah,09 int 21h add c,30h mov dl,c mov ah,2 int 21h mov dl,0ah int 21h mov dl,0dh int 21h retmain endpcode ends end start例例 2. C = a + b匯編后的目匯編后的目標(biāo)文件只有標(biāo)文件只有208字節(jié)字節(jié)目標(biāo):目標(biāo): 了解匯編語言的特性及其編程技術(shù),了解匯編語言的特性及其編程技術(shù), 建立起建立起“機(jī)器機(jī)器”和和“程序程序”、“空間空間”和和“時間時間”的概念。的
6、概念。建議:建議: 充分注意充分注意“匯編匯編”課實(shí)踐性強(qiáng)的特點(diǎn),課實(shí)踐性強(qiáng)的特點(diǎn), 多讀程序多讀程序,多寫程序多寫程序,多上機(jī)調(diào)試程序多上機(jī)調(diào)試程序, 熟悉熟悉PC機(jī)的編程結(jié)構(gòu),機(jī)的編程結(jié)構(gòu), 掌握匯編語言及其程序設(shè)計(jì)的基本概掌握匯編語言及其程序設(shè)計(jì)的基本概 念、方法和技巧。念、方法和技巧。計(jì)算機(jī)以二進(jìn)制數(shù)為基礎(chǔ)。那么計(jì)算機(jī)以二進(jìn)制數(shù)為基礎(chǔ)。那么控制計(jì)算機(jī)工作的機(jī)器指令就由控制計(jì)算機(jī)工作的機(jī)器指令就由二進(jìn)制數(shù)構(gòu)成,而機(jī)器指令的集二進(jìn)制數(shù)構(gòu)成,而機(jī)器指令的集合稱之為機(jī)器語言。合稱之為機(jī)器語言。如果想讓計(jì)算機(jī)工作,就要寫出如果想讓計(jì)算機(jī)工作,就要寫出一系列二進(jìn)制的機(jī)器碼。一系列二進(jìn)制的機(jī)器碼。匯
7、編語言基本概念匯編語言基本概念二進(jìn)制表示二進(jìn)制表示 十六進(jìn)制表示十六進(jìn)制表示101110000010001100000000101110000010001100000000 B82300 B82300 000001010001101100000000000001010001101100000000 051B00 051B00 101000110000010000000000101000110000010000000000 A30400 A30400 例如計(jì)算例如計(jì)算Z=35+27Z=35+27,寫成機(jī)器指令為:,寫成機(jī)器指令為:用指令助記符表示如下:用指令助記符表示如下:MOV AX,35AD
8、D AX,27MOV Z,AX特點(diǎn):簡單直觀特點(diǎn):簡單直觀 這些助記符就是匯編指令,用匯編指這些助記符就是匯編指令,用匯編指令編寫的程序稱為匯編語言。令編寫的程序稱為匯編語言。 匯編指令可以翻譯成二進(jìn)制的機(jī)器指令匯編指令可以翻譯成二進(jìn)制的機(jī)器指令代碼。代碼。一、一、N進(jìn)制數(shù)進(jìn)制數(shù)二、二、二進(jìn)制數(shù)和十六進(jìn)制數(shù)運(yùn)算二進(jìn)制數(shù)和十六進(jìn)制數(shù)運(yùn)算三、三、計(jì)算機(jī)內(nèi)數(shù)的表示計(jì)算機(jī)內(nèi)數(shù)的表示四、四、二進(jìn)制編碼二進(jìn)制編碼第一節(jié)第一節(jié) 進(jìn)位記數(shù)制與不同基數(shù)的數(shù)之間的轉(zhuǎn)換進(jìn)位記數(shù)制與不同基數(shù)的數(shù)之間的轉(zhuǎn)換1N進(jìn)制數(shù)的表示法進(jìn)制數(shù)的表示法2N進(jìn)制數(shù)與十進(jìn)制數(shù)的轉(zhuǎn)換進(jìn)制數(shù)與十進(jìn)制數(shù)的轉(zhuǎn)換3二進(jìn)制與十六進(jìn)制數(shù)的轉(zhuǎn)換二進(jìn)制與
9、十六進(jìn)制數(shù)的轉(zhuǎn)換一、一、N進(jìn)制數(shù)進(jìn)制數(shù)1. N進(jìn)制數(shù)的表示法進(jìn)制數(shù)的表示法l 十進(jìn)制數(shù)十進(jìn)制數(shù) 基數(shù)基數(shù)10 , 遵循逢遵循逢10進(jìn)位進(jìn)位數(shù)碼數(shù)碼10個個 :0,1,2,3,4,5,6,7,8,9 如:如: (123. 5)10 或或123. 5D 或或 123. 5數(shù)值大小計(jì)算數(shù)值大小計(jì)算:123. 5 = 1 102 + 2 101 + 3 100 + 5 10-1l N進(jìn)制數(shù)進(jìn)制數(shù)基數(shù)基數(shù)N , 遵循逢遵循逢N進(jìn)位進(jìn)位數(shù)碼數(shù)碼N個個:0,1,2, 、 ,N-1數(shù)值大小計(jì)算數(shù)值大小計(jì)算:(AnAn-1 、A0 . A-1A-2 、A-m)N= An Nn + An-1 Nn-1+ 、 +
10、A1 N1 + A0N0+ A-1 N-1 + A-2 N-2 + 、 + A-m N-ml二進(jìn)制數(shù)二進(jìn)制數(shù)基數(shù)基數(shù)2 , 遵循逢遵循逢2進(jìn)位進(jìn)位數(shù)碼數(shù)碼2個個:0,1( 1011011 ) 2 或或 1011011 B= 1 25 + 0 24+ 1 23+ 1 22 + 0 21+ 1 20 + 1 2-1 = 455Dl 十六進(jìn)制數(shù)十六進(jìn)制數(shù) 基數(shù)基數(shù)16 , 遵循逢遵循逢16進(jìn)位進(jìn)位 數(shù)碼數(shù)碼16個個:0,1,、,、 ,9,A,B,C,D,E,F(xiàn)16進(jìn)制的進(jìn)制的09與與10進(jìn)制的進(jìn)制的09相等相等例:例:( BF3C8 )16 或或 BF3C8 H=11 163 + 15 16 2+
11、3 161+ 12 160 +8 16-1=489565D十六進(jìn)制數(shù)十六進(jìn)制數(shù)ABCDEF十進(jìn)制數(shù)十進(jìn)制數(shù)1011121314152. N進(jìn)制數(shù)與十進(jìn)制數(shù)的轉(zhuǎn)換進(jìn)制數(shù)與十進(jìn)制數(shù)的轉(zhuǎn)換 1) N進(jìn)制數(shù)進(jìn)制數(shù) 十進(jìn)制數(shù)十進(jìn)制數(shù) 方法方法: 與數(shù)值大小計(jì)算過程相同。與數(shù)值大小計(jì)算過程相同。加權(quán)運(yùn)算加權(quán)運(yùn)算 例:例: 1011011 B = 1 25 + 0 24+ 1 23+ 1 22 +0 21 + 1 20 + 1 2-1 = 455 D BF3C8 H = 11 163 + 15 16 2+ 3 161+ 12 160 + 8 16-1 = 489565D2) 十進(jìn)制數(shù)十進(jìn)制數(shù) N進(jìn)制數(shù)進(jìn)制數(shù)
12、用除法和乘法完成用除法和乘法完成 整數(shù)部分:除整數(shù)部分:除N取余取余,商零為止,結(jié)果先低后高,商零為止,結(jié)果先低后高 小數(shù)部分:乘小數(shù)部分:乘N取整取整,到零為止,結(jié)果先高后低,到零為止,結(jié)果先高后低方法:方法:182D-2進(jìn)制進(jìn)制0.875D- 2進(jìn)制進(jìn)制182/2=91 余余0 20位取位取 00.875*2=1.75 取整取整 2-1位取位取191/2=45 余余121位取位取10.75*2=1.5取整取整 2-2位取位取145/2=22余余122位取位取10.5*2=1取整取整 2-3位取位取122/2=11余余023位取位取00取整取整 2-4位取位取011/2=5余余124位取位取
13、15/2=2余余025位取位取02/2=1余余026位取位取01/2=0結(jié)束結(jié)束27位取位取1結(jié)果結(jié)果:10010110B=182D0.875D=0.111B整數(shù)部分:除整數(shù)部分:除N取余,商零為止,結(jié)果先低后高取余,商零為止,結(jié)果先低后高例例1 十進(jìn)制數(shù)十進(jìn)制數(shù) 二進(jìn)制數(shù)二進(jìn)制數(shù)125. 125D 二進(jìn)制數(shù)二進(jìn)制數(shù) 2 125 取余取余 2 62 1 低位低位 2 31 0 2 15 1 2 7 1 2 3 1 2 1 1 0 1 高位高位 先低后高先低后高, 故:故: 125D = 111 1101B商為商為 0小數(shù)部分:乘小數(shù)部分:乘N取整,到零為止,結(jié)果先高后低取整,到零為止,結(jié)果先高
14、后低 取整取整 0. 125 2 = 0. 25 0 高位高位 0. 25 2 = 0. 5 0 0. 5 2 = 1. 0 1 低位低位 先高后低先高后低, 故故 : 0. 125D =0. 001B將整數(shù)部分和小數(shù)部分結(jié)合起來,將整數(shù)部分和小數(shù)部分結(jié)合起來,故:故:125. 125D = 111 1101. 001B小數(shù)為小數(shù)為 0例例2 十進(jìn)制數(shù)十進(jìn)制數(shù) 十六進(jìn)制數(shù)十六進(jìn)制數(shù) 125. 125D 十六進(jìn)制數(shù)十六進(jìn)制數(shù)整數(shù)部分:除整數(shù)部分:除N取余,商零為止,結(jié)果先低后高取余,商零為止,結(jié)果先低后高 16 125 取余取余 16 7 13 低位低位D 0 7 高位高位7 故:故: 125D
15、 = 7DH 小數(shù)部分:乘小數(shù)部分:乘N取整,到零為止,結(jié)果先高后低取整,到零為止,結(jié)果先高后低 取整取整 0. 125 16 = 2. 0 2 故:故: 0. 125D = 0. 2H將整數(shù)部分和小數(shù)部分結(jié)合,將整數(shù)部分和小數(shù)部分結(jié)合,125. 125D =7D. 2H小數(shù)為小數(shù)為 0商為商為 0若小數(shù)部分永不為零,可取近似值。若小數(shù)部分永不為零,可取近似值。 例例 0. 7 D = ? H 0. 7 16 = 11. 2 0. 2 16 = 3. 2 0. 2 16 = 3. 2故故 0. 7 D = 0. B333 H3. 二進(jìn)制數(shù)與十六進(jìn)制數(shù)的轉(zhuǎn)換二進(jìn)制數(shù)與十六進(jìn)制數(shù)的轉(zhuǎn)換1) 二進(jìn)制
16、數(shù)與十六進(jìn)制數(shù)間的關(guān)系二進(jìn)制數(shù)與十六進(jìn)制數(shù)間的關(guān)系2) 二進(jìn)制數(shù)二進(jìn)制數(shù) 十六進(jìn)制數(shù)十六進(jìn)制數(shù)3) 十六進(jìn)制數(shù)十六進(jìn)制數(shù) 二進(jìn)制數(shù)二進(jìn)制數(shù)思考思考:如何將位數(shù)較長的如何將位數(shù)較長的10進(jìn)制數(shù)快速轉(zhuǎn)換進(jìn)制數(shù)快速轉(zhuǎn)換為為2進(jìn)制數(shù)進(jìn)制數(shù)?1) 二進(jìn)制數(shù)與十六進(jìn)制數(shù)間的關(guān)系二進(jìn)制數(shù)與十六進(jìn)制數(shù)間的關(guān)系 十六進(jìn)制數(shù)的基數(shù)十六進(jìn)制數(shù)的基數(shù) 16 = 24 1位十六進(jìn)制數(shù)對應(yīng)位十六進(jìn)制數(shù)對應(yīng)4位二進(jìn)制數(shù)位二進(jìn)制數(shù)十十進(jìn)進(jìn)制制數(shù)數(shù) 二二進(jìn)進(jìn)制制數(shù)數(shù) 十十六六進(jìn)進(jìn)制制數(shù)數(shù)000000100011200102300113401004501015601106701117810008910019101010A1110
17、11B121100C131101D141110E151111F2) 二進(jìn)制數(shù)二進(jìn)制數(shù) 十六進(jìn)制數(shù)十六進(jìn)制數(shù)方法:方法:以小數(shù)點(diǎn)為基準(zhǔn),分別向左和向右每以小數(shù)點(diǎn)為基準(zhǔn),分別向左和向右每4位劃為一組,位劃為一組,不足不足4位用位用0補(bǔ),每一組用其對應(yīng)的十六進(jìn)制數(shù)代替。補(bǔ),每一組用其對應(yīng)的十六進(jìn)制數(shù)代替。例:例:11110. 01B = 0001 1110. 0100 B = 1 E . 4 H1111101. 001B = 0111 1101. 0010 B = 7 D . 2 H 3) 十六進(jìn)制數(shù)十六進(jìn)制數(shù) 二進(jìn)制數(shù)二進(jìn)制數(shù) 方法:方法: 將每位十六進(jìn)制數(shù)用其對應(yīng)的將每位十六進(jìn)制數(shù)用其對應(yīng)的4位
18、二進(jìn)制數(shù)代替即可。位二進(jìn)制數(shù)代替即可。例例 :1E. 4H = 0001 1110. 0100B = 11110. 01B7D. 2H = 0111 1101. 0010B = 111 1101. 001Bl l 十進(jìn)制數(shù)與二進(jìn)制數(shù)之間的轉(zhuǎn)換需計(jì)算,不直觀;十進(jìn)制數(shù)與二進(jìn)制數(shù)之間的轉(zhuǎn)換需計(jì)算,不直觀;l 二進(jìn)制表示的數(shù)位多不便于書寫、閱讀;二進(jìn)制表示的數(shù)位多不便于書寫、閱讀; l 十六進(jìn)制數(shù)與二進(jìn)制數(shù)間轉(zhuǎn)換方便、直觀,十六進(jìn)制數(shù)與二進(jìn)制數(shù)間轉(zhuǎn)換方便、直觀, 相對于二進(jìn)制數(shù),十六進(jìn)制數(shù)書寫、閱讀相對方便。相對于二進(jìn)制數(shù),十六進(jìn)制數(shù)書寫、閱讀相對方便。 思考:思考:計(jì)算機(jī)采用二進(jìn)制形式表示數(shù)據(jù)和指
19、令,計(jì)算機(jī)采用二進(jìn)制形式表示數(shù)據(jù)和指令, 在書寫,顯示上在書寫,顯示上引進(jìn)十六進(jìn)制的意義引進(jìn)十六進(jìn)制的意義是什么?是什么? 計(jì)算機(jī)內(nèi)部使用十六進(jìn)制嗎?計(jì)算機(jī)內(nèi)部使用十六進(jìn)制嗎?1. 算術(shù)運(yùn)算算術(shù)運(yùn)算二進(jìn)制數(shù)和十六進(jìn)制數(shù)加、減、乘、除二進(jìn)制數(shù)和十六進(jìn)制數(shù)加、減、乘、除, 與十進(jìn)制數(shù)類似與十進(jìn)制數(shù)類似2. 邏輯運(yùn)算邏輯運(yùn)算 (第三章邏輯指令中介紹第三章邏輯指令中介紹) 二進(jìn)制數(shù)運(yùn)算,與、或、非、異或,特點(diǎn):按位進(jìn)行二進(jìn)制數(shù)運(yùn)算,與、或、非、異或,特點(diǎn):按位進(jìn)行第二節(jié)第二節(jié) 二進(jìn)制數(shù)和十六進(jìn)制數(shù)運(yùn)算二進(jìn)制數(shù)和十六進(jìn)制數(shù)運(yùn)算1. 1. 算術(shù)運(yùn)算算術(shù)運(yùn)算1)二進(jìn)制數(shù))二進(jìn)制數(shù) 加法加法 逢逢2進(jìn)進(jìn)1 減
20、法減法 借借1為為28位運(yùn)算器:參加運(yùn)算的數(shù)及結(jié)果均以位運(yùn)算器:參加運(yùn)算的數(shù)及結(jié)果均以8位表示位表示, , 最高位產(chǎn)生的進(jìn)位或借位在最高位產(chǎn)生的進(jìn)位或借位在8位運(yùn)算器中不保存,位運(yùn)算器中不保存, 而將其保存到標(biāo)志寄存器中而將其保存到標(biāo)志寄存器中 1 0 1 1 0 1 0 1 0 1 0 0 0 1 0 0 + + 1 0 0 0 1 1 1 1 - - 1 0 1 0 0 1 0 1 進(jìn)位進(jìn)位 1 1 1 1 1 1 1 借位借位 1 1 1 1 1 1 1 0 1 0 0 0 1 0 0 1 0 0 1 1 1 1 1例例 二進(jìn)制運(yùn)算二進(jìn)制運(yùn)算 ( (以以8位運(yùn)算器為例)位運(yùn)算器為例)2)
21、 十六進(jìn)制數(shù)十六進(jìn)制數(shù) 加法加法 逢逢16進(jìn)進(jìn)1 減法減法 借借1為為16 B 5 H 4 4 H + 8 F H - A 5 H 進(jìn)位進(jìn)位 1 1 借位借位 1 1 4 4 H 9 F H例例 十六進(jìn)制運(yùn)算十六進(jìn)制運(yùn)算 1 0 1 1 0 1 0 1 B 0 1 0 0 0 1 0 0 B + + 1 0 0 0 1 1 1 1 B - - 1 0 1 0 0 1 0 1 B 進(jìn)位進(jìn)位 1 1 1 1 1 1 1 借位借位 1 1 1 1 1 1 1 0 1 0 0 0 1 0 0 B 1 0 0 1 1 1 1 1 B結(jié)果與二進(jìn)制計(jì)算相同:結(jié)果與二進(jìn)制計(jì)算相同:1無符號數(shù)無符號數(shù)2帶符號數(shù)
22、帶符號數(shù)1) 求補(bǔ)運(yùn)算求補(bǔ)運(yùn)算2) 補(bǔ)碼補(bǔ)碼3) 補(bǔ)碼的真值計(jì)算補(bǔ)碼的真值計(jì)算4) 用補(bǔ)碼表示帶符號數(shù)的意義用補(bǔ)碼表示帶符號數(shù)的意義38位、位、16位數(shù)的表示范圍位數(shù)的表示范圍4進(jìn)位、借位、溢出的判斷進(jìn)位、借位、溢出的判斷第三節(jié)第三節(jié) 計(jì)算機(jī)中數(shù)和字符的表示計(jì)算機(jī)中數(shù)和字符的表示1. 無符號數(shù)無符號數(shù) 二進(jìn)制數(shù)的各位均表示數(shù)值大小,最高位無符號意義。二進(jìn)制數(shù)的各位均表示數(shù)值大小,最高位無符號意義。 例例 1111 0000 B = F0H = 1516 = 240D 1001 0001 B = 91H = 916 + 1= 145 D 應(yīng)用場合:應(yīng)用場合: 處理的數(shù)全是正數(shù)時,如表示地址的數(shù)處
23、理的數(shù)全是正數(shù)時,如表示地址的數(shù)2. 帶符號數(shù)帶符號數(shù)l 數(shù)有正、負(fù)數(shù)有正、負(fù) 帶符號數(shù)帶符號數(shù)l 在計(jì)算機(jī)中符號也用二進(jìn)制數(shù)表示在計(jì)算機(jī)中符號也用二進(jìn)制數(shù)表示l 計(jì)算機(jī)中用計(jì)算機(jī)中用補(bǔ)碼補(bǔ)碼表示帶符號數(shù)表示帶符號數(shù)計(jì)算機(jī)中正負(fù)計(jì)算機(jī)中正負(fù)數(shù)的表示數(shù)的表示 7 6 5 4 3 2 1 0符號位符號位 數(shù)值位數(shù)值位假設(shè)機(jī)器字長字長為16位:符號位符號位 = 0 正數(shù)正數(shù) 數(shù)值位數(shù)值位 = 1 負(fù)數(shù)負(fù)數(shù)15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0假設(shè)機(jī)器字長字長為8位:1) 求補(bǔ)運(yùn)算求補(bǔ)運(yùn)算原碼表示法:原碼表示法:符號符號 + 絕對值絕對值例:例:n = 8bit +
24、3原碼原碼 = 0 000,0011 = 03H - 3原碼原碼 = 1 000,0011 = 83H +0原碼原碼 = 0 000,0000 = 00H - 0原碼原碼 = 1 000,0000 = 80H 0 的表示不惟的表示不惟一一反碼表示法:反碼表示法:正數(shù)的反碼同原碼,負(fù)數(shù)的反碼數(shù)值位與原碼相正數(shù)的反碼同原碼,負(fù)數(shù)的反碼數(shù)值位與原碼相反反例:例:n = 8bit +5反碼反碼 = 0 000,0101 = 05H - 5反碼反碼 = 1 111,1010 = FAH +0反碼反碼 = 0 000,0000 = 00H - 0反碼反碼 = 1 111,1111 = FFH 0 的表示不
25、惟的表示不惟一一 對一個二進(jìn)制數(shù)按位取反,最低位加對一個二進(jìn)制數(shù)按位取反,最低位加1。 等價于:等價于: 0 - - 該二進(jìn)制數(shù)該二進(jìn)制數(shù) 求補(bǔ)運(yùn)算:求補(bǔ)運(yùn)算:正數(shù)的補(bǔ)碼:正數(shù)的補(bǔ)碼: 同原碼負(fù)數(shù)的補(bǔ)碼負(fù)數(shù)的補(bǔ)碼:例:例:對對 8 位位二進(jìn)制數(shù)二進(jìn)制數(shù) 11110001B進(jìn)行求補(bǔ)運(yùn)算進(jìn)行求補(bǔ)運(yùn)算方法方法1:按位取反,最低位加:按位取反,最低位加1 1111 00011111 0001 B B 取反取反 0000 1110 B0000 1110 B 加加1 11 1 0000 11110000 1111 B B 最高位借位最高位借位超出超出8位位自然丟失自然丟失方法方法2: 0 - - 該二進(jìn)制
26、數(shù)該二進(jìn)制數(shù) 0000 0000 B 0 0 H0000 0000 B 0 0 H - - 1111 00011111 0001 B - B - F 1F 1 H H 0000 11110000 1111 B B 0 F0 F H H2) 補(bǔ)碼補(bǔ)碼在計(jì)算機(jī)中,用補(bǔ)碼表示在計(jì)算機(jī)中,用補(bǔ)碼表示帶符號數(shù)帶符號數(shù)。 補(bǔ)碼的表示方法:補(bǔ)碼的表示方法: 正數(shù)的補(bǔ)碼正數(shù)的補(bǔ)碼:最高位為:最高位為 0, 其它各位為數(shù)字位,表示數(shù)的大小。其它各位為數(shù)字位,表示數(shù)的大小。 所以,整數(shù)的補(bǔ)碼同原碼所以,整數(shù)的補(bǔ)碼同原碼 負(fù)數(shù)的補(bǔ)碼負(fù)數(shù)的補(bǔ)碼:通過對該數(shù)正數(shù)的補(bǔ)碼進(jìn)行:通過對該數(shù)正數(shù)的補(bǔ)碼進(jìn)行求補(bǔ)運(yùn)算求補(bǔ)運(yùn)算得到。
27、得到。 負(fù)數(shù)的補(bǔ)碼最高位為負(fù)數(shù)的補(bǔ)碼最高位為 1。例例 求求 105D 的補(bǔ)碼的補(bǔ)碼 2 105 2 52 1 2 26 0 2 13 0 2 6 1 2 3 0 2 1 1 0 1 正數(shù)的補(bǔ)碼:最高位為正數(shù)的補(bǔ)碼:最高位為0 其它各位為數(shù)字位,表示數(shù)的大小。其它各位為數(shù)字位,表示數(shù)的大小。 105D 補(bǔ)補(bǔ)= 0110 1001B = 69 H (8位位)= 0000 0000 0110 1001 B= 0069 H (16位位)例例 求求 105D的補(bǔ)碼的補(bǔ)碼負(fù)數(shù)的補(bǔ)碼:通過對該數(shù)正數(shù)的補(bǔ)碼進(jìn)行求補(bǔ)運(yùn)算得到。負(fù)數(shù)的補(bǔ)碼:通過對該數(shù)正數(shù)的補(bǔ)碼進(jìn)行求補(bǔ)運(yùn)算得到。16位位: 105D 補(bǔ)補(bǔ) = 0
28、 105D 補(bǔ)補(bǔ) = 0 0000 0000 0110 1001B = 0 0069H = 1111 1111 1001 0111B = F F 9 7 H 8位位: 105D 補(bǔ)補(bǔ) = 0 105D 補(bǔ)補(bǔ) = 0 0110 1001B = 0 69H = 10010111B = 97 H3) 補(bǔ)碼的真值計(jì)算補(bǔ)碼的真值計(jì)算 真值真值:補(bǔ)碼表示的數(shù)值大小。:補(bǔ)碼表示的數(shù)值大小。 D 2000:0 ;顯示內(nèi)存塊顯示內(nèi)存塊2000:07Fh單元的單元的內(nèi)容內(nèi)容2000:0000 9E 0F C9 D8 65 04 70 00-16 00 13 08 65 04 70 00 2000:0000 9E
29、0F C9 D8 65 04 70 00-16 00 13 08 65 04 70 00 2000:0010 65 04 70 00 54 FF 00 F0-58 7F 00 F0 F5 E7 00 F02000:0010 65 04 70 00 54 FF 00 F0-58 7F 00 F0 F5 E7 00 F02000:0020 00 00 00 D0 28 00 13 08-6F EF 00 F0 6F EF 00 F02000:0020 00 00 00 D0 28 00 13 08-6F EF 00 F0 6F EF 00 F02000:0030 6F EF 00 F0 6F EF
30、 00 F0-9A 00 13 08 65 04 70 002000:0030 6F EF 00 F0 6F EF 00 F0-9A 00 13 08 65 04 70 002000:0040 07 00 70 D0 4D F8 00 F0-41 F8 00 F0 07 25 61 FD2000:0040 07 00 70 D0 4D F8 00 F0-41 F8 00 F0 07 25 61 FD2000:0050 39 E7 00 F0 40 02 5C 02-2D 04 70 00 28 0A 5C 032000:0050 39 E7 00 F0 40 02 5C 02-2D 04 70
31、 00 28 0A 5C 032000:0060 A4 E7 00 F0 2F 00 D4 08-6E FE 00 F0 04 06 5C 032000:0060 A4 E7 00 F0 2F 00 D4 08-6E FE 00 F0 04 06 5C 032000:0070 1D 00 00 D0 A4 F0 00 F0-22 05 00 00 34 12 00 C02000:0070 1D 00 00 D0 A4 F0 00 F0-22 05 00 00 34 12 00 C0如,如,用用DEBUG查看到存放在內(nèi)存中的一組符號數(shù):查看到存放在內(nèi)存中的一組符號數(shù):如何知道它們表示的大?。咳绾?/p>
32、知道它們表示的大???求補(bǔ)碼真值的方法:求補(bǔ)碼真值的方法: 先判斷是正數(shù),還是負(fù)數(shù)。先判斷是正數(shù),還是負(fù)數(shù)。 由最高位判斷:由最高位判斷:0 正數(shù)正數(shù) 1 負(fù)數(shù)負(fù)數(shù) 再求數(shù)值大小再求數(shù)值大小 對正數(shù),補(bǔ)碼的真值等于該二進(jìn)制數(shù)值。對正數(shù),補(bǔ)碼的真值等于該二進(jìn)制數(shù)值。對負(fù)數(shù),先對該數(shù)進(jìn)行求補(bǔ)運(yùn)算,再求數(shù)值大小。對負(fù)數(shù),先對該數(shù)進(jìn)行求補(bǔ)運(yùn)算,再求數(shù)值大小。例例 求補(bǔ)碼求補(bǔ)碼7D H 的真值的真值: 7D H = 0111 1101B , 最高位為最高位為0,是正數(shù),是正數(shù) 7DH的真值的真值 = 7 16 + 13 = 125 D例例 求補(bǔ)碼求補(bǔ)碼 91H 的真值的真值: 91H = 1001 000
33、1B, 最高位為最高位為1 ,是負(fù)數(shù)。,是負(fù)數(shù)。 對對91H進(jìn)行求補(bǔ)運(yùn)算:進(jìn)行求補(bǔ)運(yùn)算: 91H 求求 補(bǔ)補(bǔ) 00H 91H = 6F H 91H的真值的真值 = 6FH = ( 6 16 +15 ) = 111D4)用補(bǔ)碼表示帶符號數(shù)的意義用補(bǔ)碼表示帶符號數(shù)的意義 計(jì)算機(jī)中用補(bǔ)碼表示帶符號數(shù)。計(jì)算機(jī)中用補(bǔ)碼表示帶符號數(shù)。(1) 將減法用加法實(shí)現(xiàn),省去減法器,簡化硬件。將減法用加法實(shí)現(xiàn),省去減法器,簡化硬件。計(jì)算機(jī)中,減法實(shí)現(xiàn)過程:計(jì)算機(jī)中,減法實(shí)現(xiàn)過程:(補(bǔ)碼減法)(補(bǔ)碼減法) 先對減數(shù)進(jìn)行求補(bǔ)運(yùn)算(求反加先對減數(shù)進(jìn)行求補(bǔ)運(yùn)算(求反加1,也是加法),也是加法) 再將求補(bǔ)后的數(shù)與被減數(shù)相加再將
34、求補(bǔ)后的數(shù)與被減數(shù)相加 相加的結(jié)果即為用補(bǔ)碼表示的兩數(shù)相減結(jié)果。相加的結(jié)果即為用補(bǔ)碼表示的兩數(shù)相減結(jié)果。 01011010 1 01011011 01000100 01000100B - - 10100101B 計(jì)算:計(jì)算: 10011111計(jì)算機(jī)中實(shí)現(xiàn)過程:計(jì)算機(jī)中實(shí)現(xiàn)過程:補(bǔ)碼減法補(bǔ)碼減法的計(jì)算結(jié)果與的計(jì)算結(jié)果與常規(guī)減法常規(guī)減法的結(jié)果相同。的結(jié)果相同。人在計(jì)算時,可用常規(guī)減法人在計(jì)算時,可用常規(guī)減法 (補(bǔ)碼減法,對人來說,相對復(fù)雜補(bǔ)碼減法,對人來說,相對復(fù)雜)補(bǔ)碼減法:補(bǔ)碼減法: 01000100 B - - 10100101 B 借位借位 1 111111 10011111 B常規(guī)減法:
35、常規(guī)減法: 01011010 1 01011011 01000100 01000100B - - 10100101B 計(jì)算:計(jì)算: 100111112) 無符號數(shù)及帶符號數(shù)的加減運(yùn)算用同一電路完成。無符號數(shù)及帶符號數(shù)的加減運(yùn)算用同一電路完成。在在計(jì)計(jì)算算機(jī)機(jī)中中計(jì)計(jì)算算看看作作無無符符號號數(shù)數(shù)看看作作帶帶符符號號數(shù)數(shù) 1 11 11 11 1 0 00 00 01 1 + + 0 00 00 00 0 1 11 10 00 0 1 11 11 11 1 1 11 10 01 1 2 24 41 1 + + 1 12 2 2 25 53 3 ( 1 15 5) + + (+ +1 12 2) 3
36、 3 1 11 11 11 1 0 00 00 01 1 0 00 00 00 0 1 11 10 00 0 1 11 11 10 0 0 01 10 01 1 2 24 41 1 1 12 2 2 22 29 9 ( 1 15 5) (+ +1 12 2) 2 27 7例例: 8位運(yùn)算器位運(yùn)算器即指令系統(tǒng)中加、減運(yùn)算即指令系統(tǒng)中加、減運(yùn)算不區(qū)分不區(qū)分無符號數(shù)或帶符號數(shù)。無符號數(shù)或帶符號數(shù)。3. 8位、位、16位二進(jìn)制數(shù)的表示范圍位二進(jìn)制數(shù)的表示范圍無無符符號號數(shù)數(shù)帶帶符符號號數(shù)數(shù)8位位0 255- -128 12716位位0 65535- -32768 32767規(guī)定規(guī)定: 8位位 1000 0000B 即即 80H為為 128D 16位位 1000 0000 0000 0000B 即即 8000H 為為 32768D4. 進(jìn)位、借位、溢出的判斷進(jìn)位、借位、溢出的判斷1) 進(jìn)位進(jìn)位 在加法過程中,最高有效位向高位產(chǎn)生進(jìn)位。在加法過程中,最高有效位向高位產(chǎn)生進(jìn)位。 對對 8位運(yùn)算,指位運(yùn)算,指D7產(chǎn)生進(jìn)位產(chǎn)生進(jìn)位 對對16位運(yùn)算,指位運(yùn)算,指D15產(chǎn)生進(jìn)位產(chǎn)生進(jìn)位2) 借位借位 在減法過程中,最高有效位向高位產(chǎn)生借位。在減法過程中,最高有效位向高位產(chǎn)生借位。 對對 8位運(yùn)算,指位運(yùn)算,指D7產(chǎn)生借位產(chǎn)生借位 對對16位運(yùn)算,指位運(yùn)算,指D15產(chǎn)生借位產(chǎn)生借位3) 溢
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 購銷中介費(fèi)合同協(xié)議書
- 圖形算法與C語言的綜合考題及答案
- 體驗(yàn)分享2025年ACCESS考試試題及答案
- 延時攝影合同協(xié)議書模板
- 邏輯推理的難點(diǎn)與解決方法試題及答案
- 代賣材料合同協(xié)議書范本
- C語言并發(fā)編程上的試題及答案
- 租庫解約合同協(xié)議書
- 計(jì)算機(jī)四級嵌入式考試熱點(diǎn)試題及答案
- 結(jié)婚合同協(xié)議書怎么離婚
- 外國建筑賞析智慧樹知到期末考試答案章節(jié)答案2024年清華大學(xué)
- 2024屆湖南省瀏陽市中考聯(lián)考化學(xué)試卷含解析
- 北京奧林匹克森林公園植物景觀與生態(tài)效益初探
- 工業(yè)數(shù)據(jù)采集技術(shù)及應(yīng)用 - 規(guī)劃生產(chǎn)數(shù)據(jù)采集方案
- 消除艾滋病、梅毒和乙肝母嬰傳播信息管理方案
- 維修類技能培訓(xùn)課件
- 基于ABB工業(yè)機(jī)器人自動化搬運(yùn)工作站的設(shè)計(jì)
- 小兒積食健康宣教知識講座
- 商超便利店行業(yè)分析報(bào)告
- 導(dǎo)游講解員暨景區(qū)(點(diǎn))講解員大賽評分表
- 供應(yīng)商審核檢查表(鑄造類專用)
評論
0/150
提交評論