第1章匯編語言基礎(chǔ)知識(shí)_第1頁
第1章匯編語言基礎(chǔ)知識(shí)_第2頁
第1章匯編語言基礎(chǔ)知識(shí)_第3頁
第1章匯編語言基礎(chǔ)知識(shí)_第4頁
第1章匯編語言基礎(chǔ)知識(shí)_第5頁
已閱讀5頁,還剩55頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、主講:黃仁泰電話761069)郵箱:專業(yè)基礎(chǔ)課、限選課軟件開發(fā)的一個(gè)組成部分一種低級(jí)語言的程序設(shè)計(jì)高級(jí)語言程序設(shè)計(jì)的擴(kuò)展課程介紹設(shè)問:設(shè)問: 1為什么要學(xué)習(xí)匯編語言?為什么要學(xué)習(xí)匯編語言? 2什么是匯編語言?什么是匯編語言? 3為什么要用十六進(jìn)制數(shù)?為什么要用十六進(jìn)制數(shù)? 4. 怎樣區(qū)別計(jì)算機(jī)中數(shù)的含義?怎樣區(qū)別計(jì)算機(jī)中數(shù)的含義? 本章重點(diǎn)本章重點(diǎn)匯編語言基本概念匯編語言基本概念十六進(jìn)制數(shù)十六進(jìn)制數(shù)數(shù)的補(bǔ)碼表示數(shù)的補(bǔ)碼表示BCD碼碼 第一章第一章 基礎(chǔ)知識(shí)基礎(chǔ)知識(shí)學(xué)習(xí)匯編語言,重要的是掌握如何學(xué)習(xí)匯編語言,重要的是掌握如何通過匯編指令和程序來控制計(jì)算機(jī)各通過匯編指令和

2、程序來控制計(jì)算機(jī)各個(gè)組成部件工作,完成一系列任務(wù)。個(gè)組成部件工作,完成一系列任務(wù)。 學(xué)會(huì)了匯編語言,就能夠在學(xué)會(huì)了匯編語言,就能夠在CPU的寄的寄存器級(jí)上進(jìn)行控制和操作,掌握直接存器級(jí)上進(jìn)行控制和操作,掌握直接對(duì)計(jì)算機(jī)硬件編程的方法。對(duì)計(jì)算機(jī)硬件編程的方法。本章介紹學(xué)習(xí)匯編語言所需的基本本章介紹學(xué)習(xí)匯編語言所需的基本知識(shí),并通過具體的例子為讀者建知識(shí),并通過具體的例子為讀者建立起匯編語言的初步概念。立起匯編語言的初步概念。計(jì)算機(jī)以二進(jìn)制數(shù)為基礎(chǔ)。那么控計(jì)算機(jī)以二進(jìn)制數(shù)為基礎(chǔ)。那么控制計(jì)算機(jī)工作的機(jī)器指令就由二進(jìn)制計(jì)算機(jī)工作的機(jī)器指令就由二進(jìn)制數(shù)構(gòu)成,而機(jī)器指令的集合稱之制數(shù)構(gòu)成,而機(jī)器指令的集

3、合稱之為為機(jī)器語言機(jī)器語言。如果想讓計(jì)算機(jī)工作,就要寫出一如果想讓計(jì)算機(jī)工作,就要寫出一系列二進(jìn)制的機(jī)器碼。系列二進(jìn)制的機(jī)器碼。1.1 匯編語言基本概念匯編語言基本概念二進(jìn)制表示二進(jìn)制表示 十六進(jìn)制表示十六進(jìn)制表示101110000010001100000000101110000010001100000000 B82300 B82300 000001010001101100000000000001010001101100000000 051B00 051B00 101000110000010000000000101000110000010000000000 A30400 A30400 例如計(jì)算

4、例如計(jì)算Z=35+27Z=35+27,寫成機(jī)器指令為:,寫成機(jī)器指令為:用指令助記符表示如下:用指令助記符表示如下:MOV AX,35ADD AX,27MOV Z,AX特點(diǎn):簡(jiǎn)單直觀特點(diǎn):簡(jiǎn)單直觀這些助記符就是匯編指令,用匯編指這些助記符就是匯編指令,用匯編指令編寫的程序稱為匯編語言。令編寫的程序稱為匯編語言。匯編語言匯編語言是一種符號(hào)化的機(jī)器語言。是一種符號(hào)化的機(jī)器語言。匯編語言既便于程序員編寫程序,又匯編語言既便于程序員編寫程序,又保留了機(jī)器語言可直接而迅速地控制保留了機(jī)器語言可直接而迅速地控制機(jī)器的長(zhǎng)處。匯編語言是直接控制計(jì)機(jī)器的長(zhǎng)處。匯編語言是直接控制計(jì)算機(jī)工作的最簡(jiǎn)便的語言。算機(jī)工作

5、的最簡(jiǎn)便的語言。 匯編語言的主要特點(diǎn):匯編語言程序與處理器指令系統(tǒng)密切相關(guān)程序員可直接、有效地控制系統(tǒng)硬件形成的可執(zhí)行文件運(yùn)行速度快、占用主存容量少匯編語言的優(yōu)點(diǎn):直接控制計(jì)算機(jī)硬件部件可以編寫在“時(shí)間”和“空間”兩方面最有效的程序匯編語言的優(yōu)點(diǎn)使得它在程序設(shè)計(jì)中占有重要的位置,是不可被取代的匯編語言的缺點(diǎn):與處理器密切有關(guān)需要熟悉計(jì)算機(jī)硬件系統(tǒng)、考慮許多細(xì)節(jié)編寫繁瑣,調(diào)試、維護(hù)、交流和移植困難匯編語言有三種指令形式:匯編語言有三種指令形式:匯編匯編指令、偽指令和宏指令指令、偽指令和宏指令。匯編指令可以翻譯成二進(jìn)制的機(jī)匯編指令可以翻譯成二進(jìn)制的機(jī)器指令代碼。器指令代碼。偽指令和宏指令不能翻譯成

6、機(jī)器偽指令和宏指令不能翻譯成機(jī)器指令,它們是在匯編期間為匯編指令,它們是在匯編期間為匯編程序提供相關(guān)信息使用的。程序提供相關(guān)信息使用的。1.2 計(jì)算機(jī)中數(shù)的表示計(jì)算機(jī)中數(shù)的表示進(jìn)制數(shù)的三要素進(jìn)制數(shù)的三要素 :基數(shù)、權(quán)、進(jìn)位規(guī):基數(shù)、權(quán)、進(jìn)位規(guī)則是描述一種進(jìn)制數(shù)的三個(gè)要素則是描述一種進(jìn)制數(shù)的三個(gè)要素 。十進(jìn)制數(shù)十進(jìn)制數(shù) 二進(jìn)制二進(jìn)制 十六進(jìn)制十六進(jìn)制 各進(jìn)制數(shù)值對(duì)照表各進(jìn)制數(shù)值對(duì)照表 各進(jìn)制間的轉(zhuǎn)換各進(jìn)制間的轉(zhuǎn)換 圖表圖表練習(xí)練習(xí)1.2.1 進(jìn)制轉(zhuǎn)換進(jìn)制轉(zhuǎn)換l十進(jìn)制數(shù)十進(jìn)制數(shù) 數(shù)碼為:數(shù)碼為:0、1、2、3、4、5、6、7、8、9 基數(shù):基數(shù): 10 權(quán):權(quán): 10 的的 N-1 次方次方 進(jìn)位

7、規(guī)則:逢十進(jìn)一進(jìn)位規(guī)則:逢十進(jìn)一 例如:十進(jìn)制數(shù)例如:十進(jìn)制數(shù) 257.36=2102+5101+7100 +310-1+610-2 l二進(jìn)制二進(jìn)制 數(shù)碼為:數(shù)碼為:0、1 基數(shù):基數(shù): 2 權(quán):權(quán): 2 的的 N-1 次方次方 進(jìn)位規(guī)則:逢二進(jìn)一進(jìn)位規(guī)則:逢二進(jìn)一 例如:二進(jìn)制數(shù)例如:二進(jìn)制數(shù)1101.01=123+122+021+120 +02-1+12-2l十六進(jìn)制十六進(jìn)制 數(shù)碼為:數(shù)碼為:0、1、2、3、4、5、6、7、 8、9、A、B、C、D、E、F 基數(shù):基數(shù): 16 權(quán):權(quán): 16 的的 N-1 次方次方 進(jìn)位規(guī)則:逢十六進(jìn)一進(jìn)位規(guī)則:逢十六進(jìn)一 例如:十六進(jìn)制數(shù)例如:十六進(jìn)制數(shù)

8、 3A6.52=3162+A161+6160 +516-1+216-2 進(jìn)制數(shù)據(jù)對(duì)照表進(jìn)制數(shù)據(jù)對(duì)照表數(shù)制間的轉(zhuǎn)換關(guān)系數(shù)制間的轉(zhuǎn)換關(guān)系按位權(quán)展開求和按位權(quán)展開求和整數(shù)除以整數(shù)除以16取余取余小數(shù)乘以小數(shù)乘以16取整取整八進(jìn)制數(shù)八進(jìn)制數(shù)十六進(jìn)制十六進(jìn)制數(shù)數(shù)二進(jìn)制數(shù)二進(jìn)制數(shù)十進(jìn)制數(shù)十進(jìn)制數(shù)4位化位化1位位1位化位化4位位按位權(quán)展開求和按位權(quán)展開求和3位位化化1位位1位位化化3位位整數(shù)除以整數(shù)除以8取余,小數(shù)乘以取余,小數(shù)乘以8取整取整整數(shù)除以整數(shù)除以2取余取余小數(shù)乘以小數(shù)乘以2取整取整按位權(quán)展開按位權(quán)展開求和求和數(shù)制間的轉(zhuǎn)換關(guān)系數(shù)制間的轉(zhuǎn)換關(guān)系在計(jì)算機(jī)中,數(shù)據(jù)都是以二進(jìn)制表示的,在計(jì)算機(jī)中,數(shù)據(jù)都是

9、以二進(jìn)制表示的,因此采用因此采用2的的n次方形式描述數(shù)的權(quán)值大次方形式描述數(shù)的權(quán)值大小比較方便。小比較方便。 十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù)整數(shù)轉(zhuǎn)換采用除2取余法:用2不斷地去除要轉(zhuǎn)換的數(shù),直到商為0。再將每一步所得的余數(shù),按逆序排列,便可得轉(zhuǎn)換結(jié)果。小數(shù)轉(zhuǎn)換采用乘2取整法:每次用2與小數(shù)部分相乘,取乘積的整數(shù)部分,再取其小數(shù)部分乘2直到小部分為0。將所取整數(shù)順序放在小數(shù)點(diǎn)后即為轉(zhuǎn)換結(jié)果。例:十進(jìn)制數(shù)例:十進(jìn)制數(shù)58.125轉(zhuǎn)換為二進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制數(shù) 整數(shù)部分,將整數(shù)部分,將58轉(zhuǎn)換成二進(jìn)制數(shù),轉(zhuǎn)換成二進(jìn)制數(shù),逐次除逐次除2取余取余: 2 58 2 29 0 2 14 1 2

10、7 0 2 3 1 2 1 1 0 1 得到的余數(shù)從后至前依次為:得到的余數(shù)從后至前依次為: 1、1、 1、 0、 1、 0 可得到:可得到:(58)10(111010)2小數(shù)部分,將小數(shù)部分,將0. 125轉(zhuǎn)換為二進(jìn)制小數(shù),轉(zhuǎn)換為二進(jìn)制小數(shù),逐逐次乘次乘2取整取整: 可得:可得:(0. 125)10 (0.001)2 即即58.125=(111010.001)B 0. 125 2 0 . 250 2 0 . 50 2 1 . 0 0例:例:十進(jìn)制數(shù)十進(jìn)制數(shù)58.125轉(zhuǎn)換為十六進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù) 整數(shù)部分,將整數(shù)部分,將58轉(zhuǎn)換成十六進(jìn)制數(shù),逐次除轉(zhuǎn)換成十六進(jìn)制數(shù),逐次除16取余:取余:

11、 16 58 16 3 A 0 3 得到的余數(shù)從后至前依次為:得到的余數(shù)從后至前依次為: 1、1、 1、 0、 0、 1 可得到:可得到:58(3A)H小數(shù)部分,將小數(shù)部分,將0. 125轉(zhuǎn)換為十六進(jìn)制小數(shù),轉(zhuǎn)換為十六進(jìn)制小數(shù),逐次乘逐次乘16取整:取整: 0. 125 16 2 . 0 可得:可得: (0. 125)10 (0.2)16 即即58.125=(3A.2)H*練習(xí):練習(xí): 125= ( ) 2* 200= ( ) 2* 33.5= ( ) 2* 68.26= ( ) 2例例1: 二進(jìn)制數(shù)二進(jìn)制數(shù)101101.1B轉(zhuǎn)換為十進(jìn)制數(shù)轉(zhuǎn)換為十進(jìn)制數(shù) 二進(jìn)制數(shù)用多項(xiàng)式展開寫成:二進(jìn)制數(shù)用多

12、項(xiàng)式展開寫成: 101101.1B 125024123122 02112012-145.5D 例例2:二進(jìn)制數(shù)二進(jìn)制數(shù)10110.1B轉(zhuǎn)換為十六進(jìn)制數(shù)轉(zhuǎn)換為十六進(jìn)制數(shù) 二進(jìn)制數(shù)整數(shù)從小數(shù)點(diǎn)左邊開始每二進(jìn)制數(shù)整數(shù)從小數(shù)點(diǎn)左邊開始每4位位 一組,小數(shù)從小數(shù)點(diǎn)右邊開始每一組,小數(shù)從小數(shù)點(diǎn)右邊開始每4位一位一 組,不夠位數(shù)以組,不夠位數(shù)以0補(bǔ)齊:補(bǔ)齊: 101101.1B = 0010 1101. 1000 = 2D.8H例例3:十六進(jìn)制數(shù)39CH轉(zhuǎn)換為十進(jìn)制數(shù) 按權(quán)展開: 39CH 3162916112160 924D 例例4:十六進(jìn)制數(shù)39CH轉(zhuǎn)換為二進(jìn)制數(shù) 39CH 0011 1001 1100

13、B練習(xí):練習(xí):11001101B = ( )D = ( )H 123H=( )DFFH=( )D 1024D= ( )H 100D= ( )H1.2.2 進(jìn)制運(yùn)算進(jìn)制運(yùn)算 二進(jìn)制運(yùn)算二進(jìn)制運(yùn)算 加法規(guī)則:加法規(guī)則:0+0=0 0+1=11+0=1 1+1=0 (同時(shí)向高位進(jìn)(同時(shí)向高位進(jìn)1)減法規(guī)則:減法規(guī)則:0-0=0 0-1=1 (同時(shí)向高位借(同時(shí)向高位借1)1-0=1 1-1=0乘法規(guī)則:乘法規(guī)則:00=0 01=010=0 11=1除法規(guī)則:除法規(guī)則:01=0 11=1 例:例:10001011B+01001001B = 11010100B十六進(jìn)制運(yùn)算十六進(jìn)制運(yùn)算 十六進(jìn)制按照逢十六

14、進(jìn)一原則進(jìn)行運(yùn)十六進(jìn)制按照逢十六進(jìn)一原則進(jìn)行運(yùn)算。在匯編語言中,只要求掌握十六算。在匯編語言中,只要求掌握十六進(jìn)制的加、減、乘運(yùn)算。進(jìn)制的加、減、乘運(yùn)算。 例例1 3F45H+2194H = 60D9H 例例2 68C5H-3428H = 349DH 例例3 12 H16 H = 18CH練習(xí)練習(xí): 十六進(jìn)制的加、減、乘法十六進(jìn)制的加、減、乘法3F45H+2194 H=669BH -23C6H=341AH -25 H=5FH*6 H=12F4H*1000 H=12 H*16 H=12 H*16 D=12 H*10 H=12 H*10 D=1.2.3 補(bǔ)碼運(yùn)算補(bǔ)碼運(yùn)算數(shù)的補(bǔ)碼表示數(shù)的補(bǔ)碼表示 補(bǔ)

15、碼運(yùn)算補(bǔ)碼運(yùn)算 補(bǔ)碼的表示范圍補(bǔ)碼的表示范圍 無符號(hào)數(shù)表示的范圍無符號(hào)數(shù)表示的范圍 符號(hào)位擴(kuò)展符號(hào)位擴(kuò)展 1. 機(jī)器數(shù)與真值機(jī)器數(shù)與真值在計(jì)算機(jī)中表示正負(fù)號(hào)的最簡(jiǎn)單方法是約在計(jì)算機(jī)中表示正負(fù)號(hào)的最簡(jiǎn)單方法是約定用定用 0 表示表示“+”,用,用 1 表示表示“-”。例:例: +101 0101 -101 1101真值:適合于計(jì)算機(jī)表示的帶有真值:適合于計(jì)算機(jī)表示的帶有“+”、“-”號(hào)的二進(jìn)制數(shù);號(hào)的二進(jìn)制數(shù);機(jī)器數(shù):真值的機(jī)器數(shù):真值的“+”、“-”號(hào)數(shù)值化后所號(hào)數(shù)值化后所得到的計(jì)算機(jī)實(shí)際能表示的數(shù)。得到的計(jì)算機(jī)實(shí)際能表示的數(shù)。機(jī)器數(shù)有三種碼:原碼、反碼、補(bǔ)碼機(jī)器數(shù)有三種碼:原碼、反碼、補(bǔ)碼

16、一、數(shù)的補(bǔ)碼表示一、數(shù)的補(bǔ)碼表示機(jī)器數(shù)應(yīng)滿足的要求:機(jī)器數(shù)應(yīng)滿足的要求: 1.機(jī)器數(shù)必須能為計(jì)算機(jī)所表示。機(jī)器數(shù)必須能為計(jì)算機(jī)所表示。 2. 機(jī)器數(shù)與真值的轉(zhuǎn)換要簡(jiǎn)單,辨認(rèn)機(jī)器數(shù)與真值的轉(zhuǎn)換要簡(jiǎn)單,辨認(rèn)要直觀。要直觀。 3 .機(jī)器數(shù)的運(yùn)算規(guī)則要簡(jiǎn)單。機(jī)器數(shù)的運(yùn)算規(guī)則要簡(jiǎn)單。 (1 1)原碼)原碼原碼將最高位作為符號(hào)位,正數(shù)為原碼將最高位作為符號(hào)位,正數(shù)為0 0,負(fù),負(fù)數(shù)為數(shù)為1 1,其余,其余7 7位作為數(shù)值位。位作為數(shù)值位。(3 3)補(bǔ)碼)補(bǔ)碼正數(shù)的補(bǔ)碼與正數(shù)的原碼一樣。負(fù)數(shù)的補(bǔ)正數(shù)的補(bǔ)碼與正數(shù)的原碼一樣。負(fù)數(shù)的補(bǔ)碼,符號(hào)位為碼,符號(hào)位為1 1,數(shù)值位在原碼的基礎(chǔ)上,數(shù)值位在原碼的基礎(chǔ)上取反

17、加取反加1 1。(2 2)反碼)反碼正數(shù)的反碼與正數(shù)的原碼一樣。負(fù)數(shù)的反正數(shù)的反碼與正數(shù)的原碼一樣。負(fù)數(shù)的反碼,符號(hào)位為碼,符號(hào)位為1 1,數(shù)值位在原碼的基礎(chǔ)上,數(shù)值位在原碼的基礎(chǔ)上取反。取反。注:對(duì)負(fù)數(shù)補(bǔ)碼的數(shù)值位再取反加注:對(duì)負(fù)數(shù)補(bǔ)碼的數(shù)值位再取反加1 1,且符號(hào)位變?yōu)榍曳?hào)位變?yōu)椤? -”,就得到其真值。,就得到其真值。正數(shù)直接從補(bǔ)碼得到真值。正數(shù)直接從補(bǔ)碼得到真值。字節(jié):字節(jié):8 8位二進(jìn)制數(shù)。位二進(jìn)制數(shù)。如如00000101B00000101B或表示成或表示成05H05H10000101B10000101B或或85H85H。 字:字:1616位二進(jìn)制數(shù),等于位二進(jìn)制數(shù),等于2 2字節(jié)

18、。字節(jié)。如如1100010111010110B1100010111010110B或或C5D6HC5D6H。雙字:雙字:3232位二進(jìn)制數(shù),又稱為雙精度位二進(jìn)制數(shù),又稱為雙精度數(shù),等于數(shù),等于4 4字節(jié)。字節(jié)。如如23456789H23456789H。在計(jì)算機(jī)中規(guī)定采用字節(jié)、字、雙在計(jì)算機(jī)中規(guī)定采用字節(jié)、字、雙字等單位來表示數(shù)據(jù)。字等單位來表示數(shù)據(jù)。例例1 1 十進(jìn)制數(shù)十進(jìn)制數(shù)+5+5和和-5-5分別表示成二進(jìn)分別表示成二進(jìn)制數(shù)原碼、反碼和補(bǔ)碼。制數(shù)原碼、反碼和補(bǔ)碼。+5原原=+5反反=+5補(bǔ)補(bǔ)=00000101B-5原原=10000101B-5反反=11111010B-5補(bǔ)補(bǔ)=11111011

19、B (1)原碼:)原碼: x原原=01101010B = 6AH y原原=11101010B = EAH(2)反碼:正數(shù)的反碼等于正數(shù)的原碼,)反碼:正數(shù)的反碼等于正數(shù)的原碼,負(fù)數(shù)為原碼求反(符號(hào)位不變)負(fù)數(shù)為原碼求反(符號(hào)位不變)x反反=x原原=01101010B = 6AH y反反= 10010101B = 95H(3)補(bǔ)碼:正數(shù)的補(bǔ)碼等于正數(shù)的原碼,負(fù))補(bǔ)碼:正數(shù)的補(bǔ)碼等于正數(shù)的原碼,負(fù)數(shù)為原碼求反加數(shù)為原碼求反加1(符號(hào)位不變)(符號(hào)位不變)x補(bǔ)補(bǔ)=x原原=01101010B = 6AH y補(bǔ)補(bǔ)= 10010110B = 96H例例2 變量變量x、y是十進(jìn)制數(shù)。是十進(jìn)制數(shù)。 x=106

20、,y= -106,求其原碼、反碼和補(bǔ)碼。求其原碼、反碼和補(bǔ)碼。例例3 給出補(bǔ)碼,求其十進(jìn)制真值。給出補(bǔ)碼,求其十進(jìn)制真值。 00100010B= +34 10010011B= -1101101B= -109 練習(xí):練習(xí):(1)求補(bǔ)碼,并用二進(jìn)制和十六進(jìn)制)求補(bǔ)碼,并用二進(jìn)制和十六進(jìn)制表示:表示:X1= 95 = B= HX2= -100=X3= -127 =X4= -39 =X5= -128 =X6= -1 =(2 2)從補(bǔ)碼求真值,用)從補(bǔ)碼求真值,用十進(jìn)制表示十進(jìn)制表示: :01101101B=11100111B= 10000011B= 00111100B= 2補(bǔ)碼運(yùn)算 例例1 已知已知x

21、=13,y=6,用補(bǔ)碼計(jì)算,用補(bǔ)碼計(jì)算xy步驟如下:步驟如下:(1)先將)先將x和和y分別用分別用8位二進(jìn)制表示:位二進(jìn)制表示:x =00001101B,y =00000110B (2)求出正數(shù)的補(bǔ)碼求出正數(shù)的補(bǔ)碼 x補(bǔ)補(bǔ)=0,0001101B y補(bǔ)補(bǔ)=0,0000110B (3)根據(jù)補(bǔ)碼運(yùn)算規(guī)則根據(jù)補(bǔ)碼運(yùn)算規(guī)則 x-y補(bǔ)補(bǔ)=x補(bǔ)補(bǔ)+-y補(bǔ)補(bǔ)(4)計(jì)算計(jì)算-y的補(bǔ)碼,即對(duì)的補(bǔ)碼,即對(duì)+y的補(bǔ)碼再的補(bǔ)碼再求補(bǔ)求補(bǔ)-y補(bǔ)補(bǔ)=1,1111010B(5)減法運(yùn)算變?yōu)檠a(bǔ)碼的加法)減法運(yùn)算變?yōu)檠a(bǔ)碼的加法 x 補(bǔ)補(bǔ) = 0,0001101B +-y 補(bǔ)補(bǔ) = 1,1111010B x-y 補(bǔ)補(bǔ) =1 0,0

22、000111B 丟掉符號(hào)進(jìn)位丟掉符號(hào)進(jìn)位求得求得 xy = 00000111B n位二進(jìn)制數(shù)補(bǔ)碼的范圍可用公式位二進(jìn)制數(shù)補(bǔ)碼的范圍可用公式 - 2 n-1 + 2 n-1 1 計(jì)算。計(jì)算。 (1) 8位二進(jìn)制補(bǔ)碼的范圍位二進(jìn)制補(bǔ)碼的范圍:00000000B01111111B - 10000000B111111111B 00 H 7F H - 80 H FF H 0 127D -128 D -1D十進(jìn)制表示的范圍:十進(jìn)制表示的范圍:-128+127, - 2 7+ 2 71 (2)16位二進(jìn)制補(bǔ)碼的范圍位二進(jìn)制補(bǔ)碼的范圍:十進(jìn)制表示的范圍:十進(jìn)制表示的范圍:-32768+32767, - 2 1

23、5+ 2 151 (3)8位無符號(hào)數(shù)的范圍位無符號(hào)數(shù)的范圍:2 n1 0000000011111111B 0255D(4)16位無符號(hào)數(shù)的范圍位無符號(hào)數(shù)的范圍: 00000000000000001111111111111111B 065535D二、數(shù)的表示范圍二、數(shù)的表示范圍1 、 8 位擴(kuò)展到位擴(kuò)展到 16 位位01110110=76H=0000000001110110=0076H10001010=8AH=1111111110001010=FF8AH2 、 16 位擴(kuò)展到位擴(kuò)展到 32 位位0076H=00000076HFF8AH=FFFFFF8AH三、符號(hào)位擴(kuò)展三、符號(hào)位擴(kuò)展 在匯編語言中

24、,常常需要把字節(jié)數(shù)據(jù)變?yōu)樽?、在匯編語言中,常常需要把字節(jié)數(shù)據(jù)變?yōu)樽帧⒆謹(jǐn)?shù)據(jù)變?yōu)殡p字,以滿足計(jì)算和指令格式的要字?jǐn)?shù)據(jù)變?yōu)殡p字,以滿足計(jì)算和指令格式的要求。求。練習(xí):練習(xí): 將字節(jié)擴(kuò)展為字,字?jǐn)U將字節(jié)擴(kuò)展為字,字?jǐn)U展到雙字。展到雙字。98H 8045H 3AH F028H 計(jì)算機(jī)中,數(shù)據(jù)除采用按計(jì)算機(jī)中,數(shù)據(jù)除采用按“值值”表表示外,還采用按示外,還采用按“形形”表示,這就是對(duì)表示,這就是對(duì)數(shù)據(jù)進(jìn)行編碼。數(shù)據(jù)進(jìn)行編碼。 所謂編碼,就是用一定規(guī)則組合而所謂編碼,就是用一定規(guī)則組合而成的若干位二進(jìn)制碼來表示數(shù)或字符成的若干位二進(jìn)制碼來表示數(shù)或字符(字母及符號(hào))。(字母及符號(hào))。 常用的編碼有十進(jìn)制數(shù)的

25、常用代碼、常用的編碼有十進(jìn)制數(shù)的常用代碼、可靠性代碼及字符代碼等??煽啃源a及字符代碼等。 1.3 編碼編碼 十進(jìn)制數(shù)編碼十進(jìn)制數(shù)編碼 BCD碼碼 可靠性編碼可靠性編碼 ASCII碼碼 1.3.1 BCD碼1.十進(jìn)制數(shù)的常用代碼表十進(jìn)制數(shù)8421 碼2421 碼余 3 碼 0 0000 0000 0011 1 0001 0001 0100 2 0010 0010 0101 3 0011 0011 0110 4 0100 0100 0111 5 0101 1011 1000 6 0110 1100 1001 7 0111 1101 1010 8 1000 1110 1011 9 1001 111

26、1 11002. 壓縮的壓縮的 BCD 碼和非壓縮的碼和非壓縮的BCD碼碼 BCD碼又可以表示成壓縮的碼又可以表示成壓縮的 BCD 碼和非壓縮的碼和非壓縮的BCD碼,可根據(jù)需要選定。碼,可根據(jù)需要選定。 (1)壓縮的)壓縮的BCD碼碼用用1字節(jié)二進(jìn)制數(shù)表示兩個(gè)字節(jié)二進(jìn)制數(shù)表示兩個(gè)8421碼,則稱為壓縮的碼,則稱為壓縮的BCD碼。例如:碼。例如:85D = 10000101BCD 364D = 00000011 01100100BCD(2)非壓縮的)非壓縮的BCD碼碼1字節(jié)二進(jìn)制數(shù)只表示一個(gè)字節(jié)二進(jìn)制數(shù)只表示一個(gè)8421碼,則稱為非壓縮的碼,則稱為非壓縮的BCD碼。碼。例如:例如:85D = 0

27、0001000 00000101BCD 364D = 00000011 00000110 00000100BCD用BCD碼作十進(jìn)制運(yùn)算,規(guī)則是逢十進(jìn)一;但是實(shí)際運(yùn)算時(shí)是按照二進(jìn)制運(yùn)算的,因此最后要進(jìn)行調(diào)整。對(duì)于壓縮BCD碼而言,低4位二進(jìn)制運(yùn)算結(jié)果如果大于9,要加6調(diào)整;高4位二進(jìn)制運(yùn)算結(jié)果如果大于9,要加60H調(diào)整;使其結(jié)果符合十進(jìn)制要求。3.3.十進(jìn)制數(shù)運(yùn)算十進(jìn)制數(shù)運(yùn)算例例1 1 23+18=41 用壓縮BCD碼運(yùn)算:00100011+00011000=00111011,結(jié)果不是BCD碼加6修正: 00111011+00000110=01000001=41H 練習(xí):練習(xí): (1) (1)

28、寫出壓縮的寫出壓縮的BCDBCD碼碼 79D=79D= 125D= 125D=(2) (2) 寫出非壓縮的寫出非壓縮的BCDBCD碼碼 64D=64D= 3427D= 3427D=1 00000 00010 00101 00110 00101 01011 01100 01110 10001 100100000001001000110100010101100111100010010 00001 00011 00100 00111 01000 01010 01101 01111 10000 10018421 碼碼8421 奇校驗(yàn)碼奇校驗(yàn)碼8421 校驗(yàn)位校驗(yàn)位8421 校驗(yàn)位校驗(yàn)位8421 偶校驗(yàn)

29、碼偶校驗(yàn)碼表 1.7 8421奇偶校驗(yàn)碼大寫字母大寫字母A-ZA-Z: 41H-5AH41H-5AH小寫字母小寫字母a-za-z: 61H-7AH61H-7AH數(shù)字?jǐn)?shù)字0-90-9: 30H-39H30H-39H空格:空格: 20H20H回車:回車: 0DH0DH換行:換行: 0AH0AH響鈴:響鈴: 07H 07H ASCII常用代碼1.4 實(shí)例一實(shí)例一 揭開數(shù)的面紗揭開數(shù)的面紗計(jì)算機(jī)內(nèi)存中的數(shù)據(jù)全部用二進(jìn)制數(shù)表示,計(jì)算機(jī)內(nèi)存中的數(shù)據(jù)全部用二進(jìn)制數(shù)表示,但是這個(gè)數(shù)具有多重性格。但是這個(gè)數(shù)具有多重性格。例如:某存儲(chǔ)單元中存放一個(gè)字節(jié)數(shù)例如:某存儲(chǔ)單元中存放一個(gè)字節(jié)數(shù)01010001B,寫成十六

30、進(jìn)制為,寫成十六進(jìn)制為51H。若把它。若把它看成數(shù)值,它等于十進(jìn)制的看成數(shù)值,它等于十進(jìn)制的81;把它看成;把它看成BCD碼,它就是十進(jìn)制數(shù)碼,它就是十進(jìn)制數(shù)51;那么把它看成;那么把它看成指令,它代表指令指令,它代表指令PUSH CX;如果把它看成;如果把它看成是是ASCII碼,則它又是大寫字母碼,則它又是大寫字母Q的的ASCII碼。碼。 1.4.1 數(shù)的正確表示數(shù)的正確表示1.4.2 數(shù)的符號(hào)問題數(shù)的符號(hào)問題 在匯編語言中,數(shù)都看成是補(bǔ)碼。補(bǔ)碼作在匯編語言中,數(shù)都看成是補(bǔ)碼。補(bǔ)碼作為機(jī)器數(shù)之一,有著重要的作用。在用補(bǔ)為機(jī)器數(shù)之一,有著重要的作用。在用補(bǔ)碼做運(yùn)算時(shí),首先要知道這個(gè)數(shù)是正數(shù)還碼做運(yùn)算時(shí),首先要知道這個(gè)數(shù)是正數(shù)還是負(fù)數(shù)。對(duì)于運(yùn)算的結(jié)果,要能判斷出結(jié)是負(fù)數(shù)。對(duì)于運(yùn)算的結(jié)果,要能判斷出結(jié)果是否溢出,結(jié)果是否有進(jìn)位;表示成十

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論