IBMPC匯編語(yǔ)言程序設(shè)計(jì)(第一)_第1頁(yè)
IBMPC匯編語(yǔ)言程序設(shè)計(jì)(第一)_第2頁(yè)
IBMPC匯編語(yǔ)言程序設(shè)計(jì)(第一)_第3頁(yè)
IBMPC匯編語(yǔ)言程序設(shè)計(jì)(第一)_第4頁(yè)
IBMPC匯編語(yǔ)言程序設(shè)計(jì)(第一)_第5頁(yè)
已閱讀5頁(yè),還剩52頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、IBM-PC匯編語(yǔ)言程序設(shè)計(jì)匯編語(yǔ)言程序設(shè)計(jì)計(jì)算機(jī)科學(xué)與技術(shù)系計(jì)算機(jī)科學(xué)與技術(shù)系參考資料參考資料1.匯編語(yǔ)言匯編語(yǔ)言王爽王爽 清華大學(xué)出版社清華大學(xué)出版社2. IBM PC 匯編語(yǔ)言與程序設(shè)計(jì)例題習(xí)題集匯編語(yǔ)言與程序設(shè)計(jì)例題習(xí)題集 溫冬嬋溫冬嬋 沈美明沈美明 清華大學(xué)出版社清華大學(xué)出版社考核方式考核方式平時(shí)作業(yè)平時(shí)作業(yè) +出勤率出勤率 20上機(jī)實(shí)驗(yàn)上機(jī)實(shí)驗(yàn) 10%考考 試試 70 作業(yè)在每次上課的時(shí)候交到講臺(tái)上作業(yè)在每次上課的時(shí)候交到講臺(tái)上 計(jì)算機(jī)語(yǔ)言的發(fā)展計(jì)算機(jī)語(yǔ)言的發(fā)展 機(jī)器語(yǔ)言機(jī)器語(yǔ)言FORTRANBASICCOBOLPASCALC/C+JAVA.匯編語(yǔ)言匯編語(yǔ)言高級(jí)語(yǔ)言高級(jí)語(yǔ)言匯編語(yǔ)言

2、的特點(diǎn)匯編語(yǔ)言的特點(diǎn) 面向機(jī)器的低級(jí)語(yǔ)言,通常是為特定的計(jì)算面向機(jī)器的低級(jí)語(yǔ)言,通常是為特定的計(jì)算 機(jī)或計(jì)算機(jī)系列機(jī)或計(jì)算機(jī)系列專門(mén)設(shè)計(jì)的。專門(mén)設(shè)計(jì)的。 保持了機(jī)器語(yǔ)言的優(yōu)點(diǎn),具有直接和簡(jiǎn)捷保持了機(jī)器語(yǔ)言的優(yōu)點(diǎn),具有直接和簡(jiǎn)捷 的特點(diǎn)。的特點(diǎn)。 可有效地訪問(wèn)、控制計(jì)算機(jī)的各種硬件設(shè)備可有效地訪問(wèn)、控制計(jì)算機(jī)的各種硬件設(shè)備, , 如磁盤(pán)、存儲(chǔ)器、如磁盤(pán)、存儲(chǔ)器、CPUCPU、I/OI/O端口等。端口等。 目標(biāo)代碼簡(jiǎn)短,占用內(nèi)存少,執(zhí)行速度快,目標(biāo)代碼簡(jiǎn)短,占用內(nèi)存少,執(zhí)行速度快, 是高效的程序設(shè)計(jì)語(yǔ)言。是高效的程序設(shè)計(jì)語(yǔ)言。 經(jīng)常與高級(jí)語(yǔ)言配合使用,應(yīng)用十分廣泛。經(jīng)常與高級(jí)語(yǔ)言配合使用,應(yīng)用十分

3、廣泛。 學(xué)習(xí)匯編語(yǔ)言,重要的是掌握如何通過(guò)匯編指令和學(xué)習(xí)匯編語(yǔ)言,重要的是掌握如何通過(guò)匯編指令和程序來(lái)控制計(jì)算機(jī)各個(gè)組成部件工作,完成一系列程序來(lái)控制計(jì)算機(jī)各個(gè)組成部件工作,完成一系列任務(wù)。任務(wù)。 學(xué)會(huì)了匯編語(yǔ)言,就能夠?qū)W(xué)會(huì)了匯編語(yǔ)言,就能夠?qū)PU的寄存器進(jìn)行控的寄存器進(jìn)行控制和操作,掌握直接對(duì)計(jì)算機(jī)硬件編程的方法。制和操作,掌握直接對(duì)計(jì)算機(jī)硬件編程的方法。 本章介紹學(xué)習(xí)匯編語(yǔ)言所需的基本知識(shí),并通過(guò)本章介紹學(xué)習(xí)匯編語(yǔ)言所需的基本知識(shí),并通過(guò)具體的例子為讀者建立起匯編語(yǔ)言的初步概念。具體的例子為讀者建立起匯編語(yǔ)言的初步概念。為什么學(xué)習(xí)匯編語(yǔ)言#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): 了解匯編語(yǔ)言的特性及其編程技術(shù),了解匯編語(yǔ)言的特性及其編程技術(shù), 建立起建立起“機(jī)器機(jī)器”和和“程序程序”、“空間空間”和和“時(shí)間時(shí)間”的概念。的

6、概念。建議:建議: 充分注意充分注意“匯編匯編”課實(shí)踐性強(qiáng)的特點(diǎn),課實(shí)踐性強(qiáng)的特點(diǎn), 多讀程序多讀程序,多寫(xiě)程序多寫(xiě)程序,多上機(jī)調(diào)試程序多上機(jī)調(diào)試程序, 熟悉熟悉PC機(jī)的編程結(jié)構(gòu),機(jī)的編程結(jié)構(gòu), 掌握匯編語(yǔ)言及其程序設(shè)計(jì)的基本概掌握匯編語(yǔ)言及其程序設(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ī)器語(yǔ)言。合稱之為機(jī)器語(yǔ)言。如果想讓計(jì)算機(jī)工作,就要寫(xiě)出如果想讓計(jì)算機(jī)工作,就要寫(xiě)出一系列二進(jìn)制的機(jī)器碼。一系列二進(jìn)制的機(jī)器碼。匯

7、編語(yǔ)言基本概念匯編語(yǔ)言基本概念二進(jìn)制表示二進(jìn)制表示 十六進(jìn)制表示十六進(jìn)制表示101110000010001100000000101110000010001100000000 B82300 B82300 000001010001101100000000000001010001101100000000 051B00 051B00 101000110000010000000000101000110000010000000000 A30400 A30400 例如計(jì)算例如計(jì)算Z=35+27Z=35+27,寫(xiě)成機(jī)器指令為:,寫(xiě)成機(jī)器指令為:用指令助記符表示如下:用指令助記符表示如下:MOV AX,35AD

8、D AX,27MOV Z,AX特點(diǎn):簡(jiǎn)單直觀特點(diǎn):簡(jiǎn)單直觀 這些助記符就是匯編指令,用匯編指這些助記符就是匯編指令,用匯編指令編寫(xiě)的程序稱為匯編語(yǔ)言。令編寫(xiě)的程序稱為匯編語(yǔ)言。 匯編指令可以翻譯成二進(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個(gè)個(gè) :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個(gè)個(gè):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個(gè)個(gè):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個(gè)個(gè):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ì)算過(guò)程相同。與數(shù)值大小計(jì)算過(guò)程相同。加權(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é)合起來(lái),將整數(shù)部分和小數(shù)部分結(jié)合起來(lái),故:故: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ù)較長(zhǎng)的如何將位數(shù)較長(zhǎng)的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ù)對(duì)應(yīng)位十六進(jìn)制數(shù)對(duì)應(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ǔ),每一組用其對(duì)應(yīng)的十六進(jìn)制數(shù)代替。補(bǔ),每一組用其對(duì)應(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ù)用其對(duì)應(yīng)的將每位十六進(jìn)制數(shù)用其對(duì)應(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ù)位多不便于書(shū)寫(xiě)、閱讀;二進(jìn)制表示的數(shù)位多不便于書(shū)寫(xiě)、閱讀; l 十六進(jìn)制數(shù)與二進(jìn)制數(shù)間轉(zhuǎn)換方便、直觀,十六進(jìn)制數(shù)與二進(jìn)制數(shù)間轉(zhuǎn)換方便、直觀, 相對(duì)于二進(jìn)制數(shù),十六進(jìn)制數(shù)書(shū)寫(xiě)、閱讀相對(duì)方便。相對(duì)于二進(jìn)制數(shù),十六進(jìn)制數(shù)書(shū)寫(xiě)、閱讀相對(duì)方便。 思考:思考:計(jì)算機(jī)采用二進(jìn)制形式表示數(shù)據(jù)和指

19、令,計(jì)算機(jī)采用二進(jìn)制形式表示數(shù)據(jù)和指令, 在書(shū)寫(xiě),顯示上在書(shū)寫(xiě),顯示上引進(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無(wú)符號(hào)數(shù)無(wú)符號(hào)數(shù)2帶符號(hào)數(shù)

22、帶符號(hào)數(shù)1) 求補(bǔ)運(yùn)算求補(bǔ)運(yùn)算2) 補(bǔ)碼補(bǔ)碼3) 補(bǔ)碼的真值計(jì)算補(bǔ)碼的真值計(jì)算4) 用補(bǔ)碼表示帶符號(hào)數(shù)的意義用補(bǔ)碼表示帶符號(hào)數(shù)的意義38位、位、16位數(shù)的表示范圍位數(shù)的表示范圍4進(jìn)位、借位、溢出的判斷進(jìn)位、借位、溢出的判斷第三節(jié)第三節(jié) 計(jì)算機(jī)中數(shù)和字符的表示計(jì)算機(jī)中數(shù)和字符的表示1. 無(wú)符號(hào)數(shù)無(wú)符號(hào)數(shù) 二進(jìn)制數(shù)的各位均表示數(shù)值大小,最高位無(wú)符號(hào)意義。二進(jìn)制數(shù)的各位均表示數(shù)值大小,最高位無(wú)符號(hào)意義。 例例 1111 0000 B = F0H = 1516 = 240D 1001 0001 B = 91H = 916 + 1= 145 D 應(yīng)用場(chǎng)合:應(yīng)用場(chǎng)合: 處理的數(shù)全是正數(shù)時(shí),如表示地址的數(shù)處

23、理的數(shù)全是正數(shù)時(shí),如表示地址的數(shù)2. 帶符號(hào)數(shù)帶符號(hào)數(shù)l 數(shù)有正、負(fù)數(shù)有正、負(fù) 帶符號(hào)數(shù)帶符號(hào)數(shù)l 在計(jì)算機(jī)中符號(hào)也用二進(jìn)制數(shù)表示在計(jì)算機(jī)中符號(hào)也用二進(jìn)制數(shù)表示l 計(jì)算機(jī)中用計(jì)算機(jī)中用補(bǔ)碼補(bǔ)碼表示帶符號(hào)數(shù)表示帶符號(hào)數(shù)計(jì)算機(jī)中正負(fù)計(jì)算機(jī)中正負(fù)數(shù)的表示數(shù)的表示 7 6 5 4 3 2 1 0符號(hào)位符號(hào)位 數(shù)值位數(shù)值位假設(shè)機(jī)器字長(zhǎng)字長(zhǎng)為16位:符號(hào)位符號(hào)位 = 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ī)器字長(zhǎng)字長(zhǎng)為8位:1) 求補(bǔ)運(yùn)算求補(bǔ)運(yùn)算原碼表示法:原碼表示法:符號(hào)符號(hào) + 絕對(duì)值絕對(duì)值例:例: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、惟的表示不惟一一 對(duì)一個(gè)二進(jìn)制數(shù)按位取反,最低位加對(duì)一個(gè)二進(jìn)制數(shù)按位取反,最低位加1。 等價(jià)于:等價(jià)于: 0 - - 該二進(jìn)制數(shù)該二進(jìn)制數(shù) 求補(bǔ)運(yùn)算:求補(bǔ)運(yùn)算:正數(shù)的補(bǔ)碼:正數(shù)的補(bǔ)碼: 同原碼負(fù)數(shù)的補(bǔ)碼負(fù)數(shù)的補(bǔ)碼:例:例:對(duì)對(duì) 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ǔ)碼表示帶符號(hào)數(shù)帶符號(hào)數(shù)。 補(bǔ)碼的表示方法:補(bǔ)碼的表示方法: 正數(shù)的補(bǔ)碼正數(shù)的補(bǔ)碼:最高位為:最高位為 0, 其它各位為數(shù)字位,表示數(shù)的大小。其它各位為數(shù)字位,表示數(shù)的大小。 所以,整數(shù)的補(bǔ)碼同原碼所以,整數(shù)的補(bǔ)碼同原碼 負(fù)數(shù)的補(bǔ)碼負(fù)數(shù)的補(bǔ)碼:通過(guò)對(duì)該數(shù)正數(shù)的補(bǔ)碼進(jìn)行:通過(guò)對(duì)該數(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ǔ)碼:通過(guò)對(duì)該數(shù)正數(shù)的補(bǔ)碼進(jìn)行求補(bǔ)運(yùn)算得到。負(fù)數(shù)的補(bǔ)碼:通過(guò)對(duì)該數(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)存中的一組符號(hào)數(shù):查看到存放在內(nèi)存中的一組符號(hào)數(shù):如何知道它們表示的大???如何

32、知道它們表示的大???求補(bǔ)碼真值的方法:求補(bǔ)碼真值的方法: 先判斷是正數(shù),還是負(fù)數(shù)。先判斷是正數(shù),還是負(fù)數(shù)。 由最高位判斷:由最高位判斷:0 正數(shù)正數(shù) 1 負(fù)數(shù)負(fù)數(shù) 再求數(shù)值大小再求數(shù)值大小 對(duì)正數(shù),補(bǔ)碼的真值等于該二進(jìn)制數(shù)值。對(duì)正數(shù),補(bǔ)碼的真值等于該二進(jìn)制數(shù)值。對(duì)負(fù)數(shù),先對(duì)該數(shù)進(jìn)行求補(bǔ)運(yùn)算,再求數(shù)值大小。對(duì)負(fù)數(shù),先對(duì)該數(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ù)。 對(duì)對(duì)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ǔ)碼表示帶符號(hào)數(shù)的意義用補(bǔ)碼表示帶符號(hào)數(shù)的意義 計(jì)算機(jī)中用補(bǔ)碼表示帶符號(hào)數(shù)。計(jì)算機(jī)中用補(bǔ)碼表示帶符號(hào)數(shù)。(1) 將減法用加法實(shí)現(xiàn),省去減法器,簡(jiǎn)化硬件。將減法用加法實(shí)現(xiàn),省去減法器,簡(jiǎn)化硬件。計(jì)算機(jī)中,減法實(shí)現(xiàn)過(guò)程:計(jì)算機(jī)中,減法實(shí)現(xiàn)過(guò)程:(補(bǔ)碼減法)(補(bǔ)碼減法) 先對(duì)減數(shù)進(jìn)行求補(bǔ)運(yùn)算(求反加先對(duì)減數(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)過(guò)程:計(jì)算機(jī)中實(shí)現(xiàn)過(guò)程:補(bǔ)碼減法補(bǔ)碼減法的計(jì)算結(jié)果與的計(jì)算結(jié)果與常規(guī)減法常規(guī)減法的結(jié)果相同。的結(jié)果相同。人在計(jì)算時(shí),可用常規(guī)減法人在計(jì)算時(shí),可用常規(guī)減法 (補(bǔ)碼減法,對(duì)人來(lái)說(shuō),相對(duì)復(fù)雜補(bǔ)碼減法,對(duì)人來(lái)說(shuō),相對(duì)復(fù)雜)補(bǔ)碼減法:補(bǔ)碼減法: 01000100 B - - 10100101 B 借位借位 1 111111 10011111 B常規(guī)減法:

35、常規(guī)減法: 01011010 1 01011011 01000100 01000100B - - 10100101B 計(jì)算:計(jì)算: 100111112) 無(wú)符號(hào)數(shù)及帶符號(hào)數(shù)的加減運(yùn)算用同一電路完成。無(wú)符號(hào)數(shù)及帶符號(hào)數(shù)的加減運(yùn)算用同一電路完成。在在計(jì)計(jì)算算機(jī)機(jī)中中計(jì)計(jì)算算看看作作無(wú)無(wú)符符號(hào)號(hào)數(shù)數(shù)看看作作帶帶符符號(hào)號(hào)數(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ū)分無(wú)符號(hào)數(shù)或帶符號(hào)數(shù)。無(wú)符號(hào)數(shù)或帶符號(hào)數(shù)。3. 8位、位、16位二進(jìn)制數(shù)的表示范圍位二進(jìn)制數(shù)的表示范圍無(wú)無(wú)符符號(hào)號(hào)數(shù)數(shù)帶帶符符號(hào)號(hào)數(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)位 在加法過(guò)程中,最高有效位向高位產(chǎn)生進(jìn)位。在加法過(guò)程中,最高有效位向高位產(chǎn)生進(jìn)位。 對(duì)對(duì) 8位運(yùn)算,指位運(yùn)算,指D7產(chǎn)生進(jìn)位產(chǎn)生進(jìn)位 對(duì)對(duì)16位運(yùn)算,指位運(yùn)算,指D15產(chǎn)生進(jìn)位產(chǎn)生進(jìn)位2) 借位借位 在減法過(guò)程中,最高有效位向高位產(chǎn)生借位。在減法過(guò)程中,最高有效位向高位產(chǎn)生借位。 對(duì)對(duì) 8位運(yùn)算,指位運(yùn)算,指D7產(chǎn)生借位產(chǎn)生借位 對(duì)對(duì)16位運(yùn)算,指位運(yùn)算,指D15產(chǎn)生借位產(chǎn)生借位3) 溢

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論