專題運算計算機硬件技術基礎學時課件_第1頁
專題運算計算機硬件技術基礎學時課件_第2頁
專題運算計算機硬件技術基礎學時課件_第3頁
專題運算計算機硬件技術基礎學時課件_第4頁
專題運算計算機硬件技術基礎學時課件_第5頁
已閱讀5頁,還剩171頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

專題運算計算機硬件技術基礎學時專題運算計算機硬件技術基礎學時專題運算計算機硬件技術基礎學時本課使用教材課堂用教材:天大出版社2006.9《MCS-51單片機原理及應用》ISBN7-5618-2321-5實驗指導書:清華大學出版社2009.9《計算機硬件技術實踐教程》ISBN978-7-302-20991-1專題運算計算機硬件技術基礎學時專題運算計算機硬件技術基礎學時1本課使用教材課堂用教材:天大出版社2006.9《MCS-51單片機原理及應用》

ISBN

7-5618-2321-5實驗指導書:清華大學出版社2009.9《計算機硬件技術實踐教程》

ISBN

978-7-302-20991-1本課使用教材課堂用教材:天大出版社2006.92學時分配共48學時(實驗另計)專題一用4學時概述內容、“三微”、表示數、編碼、邏輯運算引出算術運算電路的求補電路先引出求補碼和求補算術運算解決本課學什么?掌握什么?怎樣學?下課后各班交課表(只需注明有課狀況即可,可以劃X或者O來代替具體科目),以便安排實驗時間還有,留下電話方便聯系本課相關問題1.上課,2.作業,3.{軟件、硬件}實驗(報告)考勤方法(方法I,方法II)學時分配共48學時(實驗另計)解決下課后各班交課表(只需注3本課的地位學習本課對基礎知識的要求本課教學目標學習本課的方法授課章節及學時安排實驗內容及安排第一講的重點和難點

本課的地位學習本課對基礎知識的要求本課教學目標學習本4本課的地位計算機文化基礎計算機技術基礎計算機應用基礎第一層第二層第三層計算機軟件技術基礎計算機硬件技術基礎計算機硬件技術基礎—微機原理、微機接口、微機應用本課的地位計算機文化基礎計算機技術基礎計算機應用基礎第一層第5

微機運算基礎?

微機組成、基本工作原理、微機系統初步?

了解CPU體系結構?

了解存儲器系統結構、作用?

了解I/O接口基本功能、結構、端口的編址方式和I/O同步控制方式?

掌握中斷概念、CPU響應中斷的條件和處理過程?

掌握指令系統和匯編語言程序設計(隱含的)

微機原理(重點)微機運算基礎微機原理(重點)6?了解并行接口與串行接口的共性與區別掌握串行通訊的基本概念?掌握可編程并行接口芯片的工作方式、初始化編程?掌握定時器、計數器的原理、功能、應用與編程?了解鍵盤、顯示器等人機交互設備的作用、原理及接口方法?

理解并掌握A/D,D/A轉換原理、主要性能參數,了解典型DAC、ADC集成芯片,與MPU的接口方法、應用及編程?了解異步串行通訊協議、應用與編程微機接口(重點)微機接口(重點)7?了解微機在測控系統中的應用?了解計算機測控系統的實時處理概念和一般結構?了解測控系統的分析和設計方法?單片機應用系統的一般分析和設計方法(重點)

微機應用微機應用8預先應學習:1、計算機文化基礎2、計算機軟件技術基礎3、數字電路、模擬電路4、電工基礎學習本課對基礎知識的要求預先應學習:學習本課對基礎知識的要求9本課教學目標基本知識基本技能思路方法獨立分析問題和解決問題的能力實踐能力和創新能力綜合運用能力獨立獲取知識的能力教師講解學生“悟”教學目標傳授知識與能力培養統一,理論與實踐統一。本課教學目標基本知識基本技能思路方法獨立分析問題和解決問題的10學習本課的方法1、利用遷移原理將自身積累的知識充分發揮出來,遷移到本課新知識的學習。2、重視實踐,獨立思考,認真做實驗3、帶著問題學,尋找解決問題的知識、思路、方法學習本課的方法1、利用遷移原理11章節內容學時學習方式第一章微型計算機基礎4自學導學

第二章MCS-51單片機的結構3導學第三章MCS-51單片機的指令系統2+1*導學(2第四章匯編語言程序設計2*遷移導學(4第五章輸入/輸出和中斷3導學(2第六章MCS-51內部的I/O口、定時器及其應用3導學(2第七章MCS-51單片機系統擴展4*導學第八章單片機人機接口(LED顯示器接口)4導學(2第九章單片機系統的開發

9.1設計步驟2自學(4第10章新型的51兼容單片機簡介1**導學授課章節及學時安排授課內容共31學時,外加一個學時介紹考試系統使用章節內容學時學習方式第一章微型計算機基礎4自學導學第12實驗內容學時實驗一

熟悉軟件環境及數傳指令編程設計2實驗二

算術、邏輯運算及位操作指令編程設計2實驗三

分支和循環程序設計2實驗四

查表、散轉、子程序設計2實驗五

8155及顯示程序設計2實驗六

P1口及外部中斷、定時器及中斷2實驗七

綜合性、開放性、設計性實驗2實驗八

綜合性、開放性、設計性實驗2實驗內容及安排實驗內容學時實驗一熟悉軟件環境及數傳指令編程設計2實驗二13內容:書P1~P28重點:難點:“三微”的概念減法運算的原理機器數與真值補碼補碼、定點補碼運算及

BCD碼、ASCII碼判溢出算術運算與邏輯運算BCD碼運算及調整作業:消化本講內容,P33思考習題11-1~1-5

消化1.4.3計算機中的運算

P331-11、1-12、1-13、1-14、1-151-16、1-17、1-18第一講內容:書P1~P28第一講14第一章微型計算機基礎

1.1微型計算機系統的概念

1、微處理器、微型計算機、微型計算機系統

2、本課主要講授內容及要求專題一計算機中的數、編碼及運算

1.4微型計算機的運算基礎第一講第一章微型計算機基礎1.1微型計算機系統的概念第151.“三微”的概念1、微處理器

(MPU)算術邏輯單元其核心cpu—運算器和控制器寄存器組是微型計算機的核心部件控制部件2、微型計算機

MPU為核心半導體存儲器(ROM/RAM)I/O(Input/Output)接口和中斷系統系統總線(CBDBAB)集成在一個半導體芯片上組裝在一塊或數塊印刷電路板上多板微型計算機單板微型計算機單片微型計算機1.“三微”的概念1、微處理器(MPU)16微型計算機的兩大分支核心器件微處理器微控制器MicroProcessorUnitembedMicroControllerUnitMPUMCU微型計算機的兩大分支核心器件微處理器微控制器MicroPro17微機組成結構的兩大類型馮.諾依曼型哈佛型CPUI/O接口存儲器系統總線數據存儲器CPUI/O接口程序存儲器系統總線DBCBAB例:PC機例:MCS-51單片機微機組成結構的兩大類型馮.諾依曼型哈佛型CPUI/O接口存儲183、微型計算機系統硬件系統軟件系統3、微型計算機系統硬件系統軟件系統19硬件系統微型計算機微處理器:運算器、控制器內存儲器ROM:ROM、PROM、EPROM、E2PROM、FlashROMRAM:SRAM、DRAM、iRAM、NVRAMI/O接口:并行、串行、中斷接口、DMA接口系統總線:數據、地址、控制總線(DB、AB、CB)外圍設備輸入/輸出設備A/D、D/A轉換器開關量輸入/輸出終端微型計算機微處理器:運算器、控制器內存儲器ROM:ROM、PROM、EPROM、E2PROM、FlashROMRAM:SRAM、DRAM、iRAM、NVRAMI/O接口:并行、串行、中斷接口、DMA接口系統總線:數據、地址、控制總線(DB、AB、CB)外圍設備輸入/輸出設備A/D、D/A轉換器開關量輸入/輸出終端硬件系統微型計算機微型計算機20軟件系統系統軟件操作系統編譯系統監控程序匯編程序程序設計語言機器語言匯編語言高級語言應用軟件

把匯編語言源程序翻譯成機器語言目標程序的語言處理程序

自匯編程序

交叉匯編程序軟件系統系統軟件把匯編語言源程序翻譯成機器語言21本課的主要內容及要求微型計算機

MPU微處理器

存儲器(內存)I/O接口系統總線連線編程綜合應用器件的外特性掌握規律本課的主要內容及要求微型計算機MPU微處理器22具體機型:MCS-51單片微型計算機Single-ChipMicrocomputerMicro-ControllerMCS-51單片機的基本組成一、中央處理器CPU二、時鐘電路三、內部存儲器四、定時器/計數器(T/C)五、并行I/O口六、串行口七、中斷控制系統具體機型:MCS-51單片微型計算機Single-Chip23重點解決:計算機的重要職能之一處理數

在計算機中如何表示一個數?不同性質數的運算規則和算法。1.4微型計算機運算基礎

1.4.1計算機中數的表示方法

1.4.2計算機中的編碼

1.4.3計算機中的運算1.4微型計算機運算基礎重點解決:計算機的重要職能之一處理數1.4微型計算機運24

幾個重要概念復習不同進制數之間的互換(黑板)3.

機器數與真值4.帶符號數的原碼、反碼、補碼5.數的定點與浮點表示

1.4.1計算機中數的表示方法幾個重要概念1.4.1計算機中數的表示方法251幾個重要概念

重點概念1:計算機中的數據都是以二進制形式進行存儲和運算的重點概念2:在計算機中存儲數據時,每類數據占據固定長度的二進制數位,而不管其實際長度。一般長度為字節的整倍數

重點概念3:計算機中不僅要處理無符號數,還要處理帶符號和帶小數點的數。例如:在八位微機中,整數216存儲為11011000B

整數56存儲為00111000B

重點概念4:機器數與真值

1幾個重要概念1幾個重要概念重點概念1:重點概念2:重點概262不同進制數之間的互換1、不同進制數轉換成十進制數——按權展開法表示不同進制數的尾部字母:二B,十六H,八Q,十D(可略)例:10101010B=1×27+0×26+1×25+0×24+1×23+0×22+1×21+0×20=128+32+8+2=1702、十二(1)整數部分——除以2取余法——直到商為0止(2)小數部分——乘以2取整法——直到積為0止或達到精度要求止例:100=B=H=Q

例:0.625=B=H=Q0.1=B=H=Q

2不同進制數之間的互換2不同進制數之間的互換1、不同進制數轉換成十進制數—27

3、二進制數、八進制與十六進制數之間的互換

1)二八三合一

2)八二一分三

3)二十六四合一(重點)

4)十六二一分四(重點)例:01110110B=76H9BH=10011011B

7610011011

例:0.1010110B=0.ACHAC不足四位補0

問:01110110B=?Q0.1010110B=?Q

3、二進制數、八進制與十六進制數之間的互換284、

用權表示數(2n2n-12n-12n-1-1)

1)權

n位二進制數各位的權從高位到低位依次為:n位二進制數:Bn-1Bn-2Bn-3……………

B1B0權:2n-12n-22n-3………

2120

2)用權表示數例:11111……1111B=2n-1,即n個1。

01111……1111B=2n-1-1,即n-1個1

最高位的權為:2n-1例:n=8,11111111B=FFH=28-101111111B=7FH=28-1-1例:n位二進制數表示無符號數的范圍:0~2n-1n=80~28-10~255n=160~216-10~65535n=32?N=64?4、

用權表示數(2n2n-12n-12n293.機器數與真值1)機器數:能被計算機識別的數稱為機器數。2)真值:機器數所代表的真實值稱為機器數的真值。3)對于無符號數其機器數與真值表示方法相同。例:真值:100=64H=01100100B

對應的機器數:64H=01100100Bn位二進制數可表示的數的范圍是:0~2n-18位二進制數可表示的數的范圍是:

0~28-1,[0,FFH],[0,255]16位二進制數可表示的數的范圍是:

0~216-1,[0,FFFFH],[0,65535]

例:01100100B其8位全部為數值位。特點:無符號數的機器數與其真值為等值關系3.機器數與真值3.機器數與真值1)機器數:能被計算機識別的數稱為機器數。304)帶符號數的機器數的表示方法(重點和難點)

常見的有原碼、反碼和補碼三種表示方式。

特點:帶符號數的機器數與其真值表示方法不同,兩者的關系不是等值關系,僅是一一對應關系。例如:在八位微機中,真值:+65可表示成機器數(原碼)為01000001B真值:-65可表示成機器數(原碼)為11000001B01100000符號位數值位符號位:“0”

表示正號“1”

表示負號4)帶符號數的機器數的表示方法(重點和難點)特點:314

帶符號數的原碼、反碼、補碼(1)原碼定義:在表示帶符號數時,正數的符號位為“0”,負數的符號位為“1”,數值位表示數的絕對值,這樣就得到了數的原碼。例如在八位微機中:[+38]原=[+100110]原=00100110B[-38]原=[-100110]原=10100110B4

帶符號數的原碼、反碼、補碼

4

帶符號數的原碼、反碼、補碼(1)原碼4

帶符號數的原32

計算公式:對于字長為n位的機器數:當真值X≥0時,X可表示為+Xn-2Xn-3…X0;當真值X<0時,X可表示為-Xn-2Xn-3…X0,則X的原碼可定義為:

[X]原=0Xn-2Xn-3…X0=X 0≤X≤2n-1―11Xn-2Xn-3…X0=2n-1-X=2n-1+|X| -(2n-1―1)≤X≤0

可見n位原碼可表示數的范圍為:-(2n-1―1)~+(2n-1―1)

則在八位微機中,碼可表示數的范圍為-127至+127求真值:帶符號數的原碼表示法簡單易懂,而且與真值轉換方便。此公式第一項即是原碼,等號后面是由真值求原碼(負)計算公式:對于字長為n位的機器數:[X]原=0Xn33原碼的缺點:

l

“0”的原碼有兩種形式,這在運算中非常不方便。

[+0]原=00000000B[-0]原=

10000000B,即分為+0和-0l

原碼在進行兩個異符號數相加或兩個同符號數相減時,需做減法運算,由于微機中一般只有加法器而無減法器,所以,為了把減法運算轉變為加法運算就引入了反碼和補碼。原碼的用途:l

原碼做乘除法運算方便,兩數的符號和數值分別處理積的符號為兩數符號位的異或運算結果積的數值部分為兩數絕對值相乘的結果原碼的缺點:34(2)反碼定義:正數的反碼表示與原碼相同;負數的反碼,可將負數原碼的符號位保持不變、數值位按位取反得到,或者將負數看作正數求原碼,再將所有位按位取反得到。因此,在n位機器數的計算機中,數X的反碼定義為:[X]反=0Xn-2Xn-3…X0=X0≤X≤2n-1―11Xn-2Xn-3…X0=11…1B-|X|=2n-1-|X|

-(2n-1―1)≤X≤0缺點:“0”的反碼也有兩種表示法,即+0和-0。

[+0]反=00000000B[-0]反=11111111Bn位反碼表示數的范圍與原碼相同,八位二進制反碼表示的范圍仍是-127至+127。(2)反碼[X]反=0Xn-2Xn-3…X0=X35例如八位微機中:[+11]原=00001011B[+11]反=00001011B[-11]原=10001011B[-11]反=11110100B[-38]原=10100110B[-38]反=11011001B[+127]原=01111111B[+127]反=01111111B[-127]原=11111111B[-127]反=10000000B[+0]原=00000000B[+0]反=00000000B[-0]原=10000000B[-0]反=11111111B求真值:由反碼求得原碼,再由原碼求得真值,即可得到反碼的真值。例如:反碼11011001B,符號位為1,將數值位按位取反,得到原碼10100110B,其真值為-0100110B即十進制數-38。例如八位微機中:[+11]原=00001011B[+11]反36(3)補碼(難點)定義:正數的補碼表示與原碼相同負數的補碼等于它的反碼末位加1

即[X]補=[X]反+1例如:[+11]原=00001011B[+11]反=00001011B[+11]補=00001011B[-11]原=10001011B[-11]反=11110100B[-11]補=11110101B[+127]原=01111111B[+127]反=01111111B[+127]補=01111111B[-127]原=11111111B[-127]反=10000000B[-127]補=10000001B[+0]原=00000000B[+0]反=00000000B[0]補=00000000B[-0]原=10000000B[-0]反=11111111B[-128]補=10000000B(3)補碼(難點)[+11]原=00001011B[+11]37補碼的含義:

以時鐘對時為例來說明,現由7點鐘調到4點鐘。

順時針調:7+9=4(mod12)逆時針調:7-3=4(mod12)

由于時鐘上超過12點時就會自動丟失一個數12,這個自動丟失的數叫做“模”(module,簡寫為mod)補碼的含義:順時針調:7+9=4(mod12)38由補碼的定義得求補碼公式:l

則n位補碼表示數的范圍為:―2n―1~+(2n―1―1)l

八位二進制補碼表示的數值范圍是-128至+127。優點:0的補碼為00000000B,只有這一種形式。[X]補=0Xn-2Xn-3…X0=X 0≤X≤2n-1―11Xn-2Xn-3…X0+1=2n-|X|=2n+X

-2n-1≤X<0(mod2n)

由補碼的定義得求補碼公式:l

則n位補碼表示數的范圍為:39已知補碼求真值:已知正數的補碼求真值與原碼相同,只要將符號位的0變為+(正號),即得到它的真值。

已知負數的補碼求真值方法1:將負數補碼的數值位按位取反再加1,將符號位的1變為-(負號),即得到它的真值。方法2:用公式:X=-(2n-[X]補)

已知補碼為01111111B,其真值為+1111111B=+7FH

已知補碼為11111111B,其真值為:10000000B+1=10000001B,其真值為—01H或:X=—(28—11111111B)=—(00H-FFH)=—1已知補碼求真值:40小結:已知帶符號數的機器數求真值1.已知正數的原碼、反碼、補碼求真值,只需將符號位的“0”改為正號“+”即可。2.已知負數的原碼,其真值只需將原碼的符號位的“1”改為負號“-”即可。3.已知負數的反碼,先將它變為原碼,再求真值。或用公式計算:真值x=-(2n-1-[x]反)

4.已知負數的補碼,數值位取反加1,符號為改為-號,或用公式:X=-(2n-[X]補)小結:已知帶符號數的機器數求真值1.已知正數的原碼、反碼41例:已知帶符號數的機器數為56H,求其真值。真值=+56H例:已知帶符號數的機器數為0D6H,求其真值。

若0D6H是原碼,則真值為:-56H

11010110B-1010110B

若0D6H是反碼,則真值為:-29H-(0FFH-0D6H)

若0D6H是補碼,則真值為:-2AH-(00H-0D6H)例:已知帶符號數的機器數為56H,求其真值。42

當n=8時,幾種碼的表示范圍原碼反碼補碼-127至+127-127至+127-128至+127

當n=16時,幾種碼的表示范圍原碼反碼補碼-32767至+32767-32767至+32767-32768至+32767當n=8時,原碼反碼補碼-127至+127-127至+1435

數的定點與浮點表示

計算機中如何表示實數中的小數點呢?

計算機中不用專門的器件表示小數點,而是用數的兩種不同的表示法來表示小數點的位置。

根據小數點的位置是否固定,數的表示方法分為定點表示和浮點表示,相應的機器數稱為定點數和浮點數。

任意一個二進制數N均可表示為:

N=S·2J

其中:

S稱為數N的尾數,表示數N的全部有效數字,決定了N的精度。

J稱為數N的階碼,底為2,指明了小數點的位置,決定了數N的大小范圍。5

數的定點與浮點表示計算機中如何表示實數中的小44sf

s1s2…sm小數點隱含位置,定點純小數sf

s1s2…sm小數點隱含位置,定點純整數(1)定點表示法計算機在處理定點數時,常把小數點固定在數值位的最后面或最前面,即分為定點純小數與定點純整數兩類,如圖1-6所示。例如:00011000B,如果看作定點純整數,其真值為24

看作定點純小數,其真值為0.1875sfs1s2…sm小數點隱含位置,sfs145

(2)浮點表示法

在浮點表示法中,小數點的位置是浮動的,階碼J可取不同的數值,則在計算機中除了要表示尾碼S,還要表示階碼J。因此,一個浮點數表示為階碼和尾數兩部分,尾數一般是定點純小數,階碼是定點純整數,其形式如圖1-7所示。小數點隱含位置

階符階碼尾符尾數

階碼部分尾數部分jfj1j2……jnsfs1s2……sm(2)浮點表示法在浮點表示法中,小數點的位4600001001100010101010100000000000B階符階碼尾符 尾數

(24位)(-469.375)10=(-111010101.011)2

=(-0.111010101011)2×2+9

=(-0.111010101011)2×2+1001B[-0.111010101011]補=100010101010100000000000B[+1001B]補=00001001B例如,某計算機用32位表示浮點數,尾數部分占24,為補碼定點純小數;階碼為8位補碼定點純整數。用來表示一個數-469.375,先進行變換:

因此,數-469.375在該計算機中的浮點表示為:000010011000101010101000000000471.4.2計算機中的編碼ASCII碼:由七位二進制編碼組成,共有128個字符編碼。包括圖形字符(字母、數字、其它可見字符共96個)和控制字符(回車、空格等共32個)其中數字0~9的ASCII碼為30H~39H,差30H

字母A~F的ASCII碼為41H~46H,差37HD7位加奇偶校驗位:無校驗D7位補0

奇校驗D7位使含1的個數為奇數個偶校驗D7位使含1的個數為偶數個例:30H00110000HD7補0為無校驗和偶校驗

10110000HD7補1為奇校驗1.4.2計算機中的編碼

1.4.2計算機中的編碼ASCII碼:由七位二進制編碼組48BCD編碼:具有十進制位權的二進制編碼。最常見的是8421碼。(見書5-6頁)注意:

0000B~1001B是0~9的BCD碼

1010B~1111B是非BCD碼例:

15的BCD碼為00010101B=15H15=0FH100=64H100的BCD碼為000100000000B=100H

壓縮的BCD碼56H占一個存儲單元非壓縮BCD碼05H06H占兩個單元存儲方式BCD編碼:具有十進制位權的二進制編碼。最常見的是8421碼49邏輯運算

1、與

3、非

2、或

4、異或算術運算1.加/減運算電路及二進制無符號數四則運算2.帶符號數補碼運算及判OV3.BCD碼加/減法及十進制調整4、算術運算小結1.4.3計算機中的運算

計算機中的運算分為兩類:邏輯運算:邏輯“與”、“或”、“非”、“異或”等算術運算:加、減、乘、除運算1.4.3計算機中的運算邏輯運算1.4.3計算機中的運算計算機中的運算分50FAAiBiCiSiCi+1圖1-8全加器符號圖AiBiCiSiCi+10000111100110011010101010110100100010111全加器真值表

加/減運算電路1.加/減運算電路及二進制無符號數的四則運算FAAiBiCiSiCi+1圖1-8全加器符號圖AiBi51減法的實現

減法時SUB=1,有取反加1功能加法時SUB=0無取反加1功能求補電路減法的實現減法時SUB=1,求補電路52進/借位標志CY=SUBC8SUBC8CY000011101110C7C8OV000011(負)101(正)110SUB加/減標志位0/1CyFAA6B6C6S6C7=1FAA1B1C1S1C2=1FAA0B0C0S0FAA7B7S7C8=1=1圖1-9八位微機加/減運算電路OV=1=1溢出標志OV=C7C8進/借位標志CY=SUBC8SUBC8CY00053(1)加法運算二進制加法法則為:0+0=01+0=0+1=11+1=101+1+1=11二進制無符號數的四則運算(1)加法運算二進制無符號數的四則運算54例:二進制無符號數加法

被加數10111011B+加數00010110B進位00111110和11010001B1、求187+22結果:11010001B即209SUB=0,C8=0,CY=02、求200+200

被加數11001000B+加數11001000B進位11001000和110010000B結果:SUB=0,C8=1,CY=1

和=進位值+8位和值

=256+10010000B=400例:二進制無符號數加法被加數101110551101110100110100110001010000011010000011111

被加數10111011B+加數00010110B進位00111110和11010001B結果:11010001B即209SUB=0,C8=0,CY=011011101001101001100010100005600010011100010011000010001011000100

被加數11001000B+加數11001000B進位11001000和110010000B10001001結果:SUB=0,C8=1,CY=1

和=進位值+8位和值

=256+10010000B=4000001001110001001100001000101157(2)減法運算法則:

0-0=0 1-0=1 1-1=00-1=1(借1當2)

被減數10111011B

-減數00010110B借位00000100差10100101B手算:例:求187-22例:二進制無符號數減法結果:無借位,差為10100101B即165直接減(2)減法運算法則:被減數1011158取反1101110100110100110100101001101011111001011機器算:難點

被減數10111011B-減數00010110B借位標志CY=SUBC8=11=0求補電路減法SUB=110101011加1取反11011101001101001101001010059

被減數 10111011B=BBH

11101001B取反+1 加1+

11101010B=EAH進位 11111010

差 10100101B=A5H求補- 減數 00010110B=16H對減數求補后,加被減數例:求187-22結果:10100101B即165無借位,SUB=1,C8=1,CY=0說明:直接相減無借位,求補相加有進位,反之亦然。被減數 10111011B=BBH求補- 減數 60

計算22-187,即00010110B-10111011B時,有:

被減數 00010110B

- 減數 10111011B01000100B 取反 +1 加1

+ 01000101B

進位 00000100

差 01011011B

此時,結果為01011011B,即91,不正確,

Cy=C8⊕SUB,C8=0,SUB=1,CY=1因為有借位-256,所以,差=-256+91=-165求補計算22-187,即00010110B-10161(3)乘法運算法則

0×0=00×1=1×0=01×1=1

被乘數1001B

乘數×1011B100110010000

+1001

乘積1100011B常用算法:1、左移加2、右移加3、連加P129例4-22(3)乘法運算法則被乘數1001B62(4)定點整數除法運算11100100011001011111011011010常用算法:1、移位相減法

P130例4-232、連減

P138例4-28(4)定點整數除法運算63定點補碼運算定律:當X,Y,X+Y,X-Y均在―2n―1~+(2n―1―1)范圍內時,則:[X+Y]補=[X]補+[Y]補

[X-Y]補=[X]補-[Y]補=[X+(-Y)]補

=[X]補+[-Y]補

如果X+Y,X-Y的值不在―2n―1~+(2n―1―1)范圍內(n=8時[-128,127]),則機器就產生了溢出錯誤,上式不成立,運算結果無意義。2.帶符號數定點補碼運算及判OV定點補碼運算定律:2.帶符號數定點補碼運算及判OV64

溢出判別

(overflow)

若X±Y>2n-1-1,為正溢出;若X±Y<-2n-1,為負溢出。判溢出的方法:

1、雙進位位法(本書主要用此法判溢出)

OV=C8C7C8、C7相同不溢出,不同溢出。

2、雙符號位法——變形碼

0V=Sf’

SfSf’

、Sf相同不溢出,不同溢出。(1)定點補碼加法

步驟:1、將X、Y(或-Y)轉換為補碼。2、進行加法運算,符號位參與運算。

溢出判別(overflow)65[例1-1]

在八位微機中,已知X=+76,Y=+23,求X+Y

解:[X]補= 01001100B

+[Y]補= 00010111B

01100011B[X]補+[Y]補=01100011B=[+99]補

=[(+76)+(+23)]補=[X+Y]補

雙進位位法判溢出:OV=0∵C7=0,C8=0

[例1-2]

已知X=+76,Y=-23,求X+Y

解: [X]補= 01001100B

+ [Y]補= 11101001B

100110101B[X]補+[Y]補=00110101B=[+53]補

=[(+76)+(-23)]補=[X+Y]補

雙進位位法判溢出:OV=0∵C7=1,C8=1編寫出程序片段:MOVA,#76;(A)=4CH=01001100BADDA,#23;(A)=4CH+17H=63HOV=0或:

MOVA,#4CH;(A)=4CH=01001100BADDA,#17H;(A)=63H真值補碼[例1-1]在八位微機中,已知X=+76,Y=+23,求66

[例1-5]

在八位微機中,已知X=+76,Y=+69,求X+Y

解: [X]補= 01001100B

+ [Y]補= 01000101B

10010001B[X]補+[Y]補=10010001B=[-111]補≠[X+Y]補雙進位位法判溢出:OV=1∵C7=1,C8=0正溢出[例1-6]

已知X=-76,Y=-69,求X+Y

解: [X]補= 10110100B

+ [Y]補= 10111011B

1

01101111B[X]補+[Y]補=01101111B=[+111]補≠[X+Y]補雙進位位法判溢出:OV=1∵C7=0,C8=1負溢出兩個正數的和為負數兩個負數的和為正數兩個正數的和為負數兩個負數的和為正數溢出后,運算結果無意義,需要將兩個操作數擴大位數后,再算。例1-5可將76的補碼寫成004CH,69得補碼寫成0049H

計算:

0000000001001100B+0000000001001001B

0000000010010101B=0095HC16C15OV=0,不溢出

例1-6同理,用16位二進制數表示數,-76得補碼為FFB4H-69的補碼為FFBBH,再算即可。

[例1-5]在八位微機中,已知X=+76,Y=67

雙符號位法判斷溢出——變形碼用兩位來表示符號:

00表示正號,11表示負號,稱為變形碼。用變形碼進行加法運算時,兩位符號位同數值位一起參加運算,運算后,若運算結果的兩個符號位相同,則沒有溢出;若運算結果的兩個符號位不同,則發生了溢出,運算結果錯誤。用Sf'和Sf表示運算結果的兩個符號位,則有:

OV=Sf'⊕Sf雙符號位法判斷溢出——變形碼68[例1-7]

在八位微機中,已知X=+76,Y=+69,求X+Y

解: [X]補 =01001100B[Y]補 =01000101B

[X]變形碼 =001001100B

+ [Y]變形碼 =001000101B

010010001B因為Sf'=0,Sf=1,運算后,根據Sf'⊕Sf=0⊕1=1

設置OV=1,有溢出,結果錯誤。[例1-7]在八位微機中,已知X=+76,Y=+69,求69[X-Y]補=[X]補-[Y]補=[X]補+[-Y]補[Y]補[-Y]補-+求補(2)定點補碼減法運算

[X-Y]補=[X]補-[Y]補=[X]補+[-Y]補

作加法,需人工求補做減法,機器自動求補[X-Y]補=[X]補-[Y]補=[X]補+[-Y]補70步驟:1、將X、Y(或-Y)轉換為補碼。2、進行減法運算,符號位參與運算。判溢出的方法與加法相同[例1-9]

已知X=+76,Y=-23,求X-Y

[X]補= 01001100B

-[Y]補= 11101001B00010110B 取反+1 加1

+ 00010111B

01100011B01100011B=[+99]補=[(+76)-(-23)]補=[X-Y]補

雙進位位法判溢出:OV=0∵C7=0,C8=0求補編寫出程序片段:MOVA,#76;(A)=4CH=01001100BMOVB,#-23;(B)=0E9HCLRCSUBBA,B;(A)=4CH-0E9H=63HOV=04CH0E9H步驟:1、將X、Y(或-Y)轉換為補碼。[例1-9]已知71

同補碼加法一樣,補碼的減法運算也可能發生溢出,因為補碼的減法運算是轉換成加法運算來實現的,所以其溢出的判斷方法與加法相同。

[例1-11]

已知X=+76,Y=-69,求X-Y解: [X]補= 01001100B

- [Y]補= 10111011B 01000100B 取反求補

+1 加1

+ 01000101B

10010001B10010001B=[-111]補≠[X-Y]補因為C7=1,C8=0,則OV=1,發生溢出,結果錯誤。X-Y=145>127

典型算法:兩個帶符號數比較大小用S表示和的符號位,OV為溢出標志位則:[X]補-[Y]補

SOV比較結果

00X>Y01X<Y10X<Y11X>Y同補碼加法一樣,補碼的減法運算也可能發生溢72(1)BCD碼的加法運算在兩個數的BCD碼進行加法運算時,當低四位和高四位都無進位并且不超過9時,可得到正確的運算結果。

[例1-13]

已知X=63,Y=24,求X+Y

解: [X]BCD碼 =01100011B

+ [Y]BCD碼 =00100100B

進位 0110000010000111B10000111B=[87]BCD碼=[63+24]BCD碼=[X+Y]BCD碼

3.BCD碼加法及十進制調整(1)BCD碼的加法運算3.BCD碼加法及十進制調整73

[例1-14]

已知X=68,Y=49,求X+Y

解: [X]BCD碼 =01101000B

+ [Y]BCD碼 =01001001B

進位 01001000CY=0,AC=1

和10110001B

+01100110B調整

100010111BCY=1X+Y=100+17=117,CY=1,進位值為100

例1-14中,低四位有進位,高四位的值超過9,是非法碼,結果錯誤,需進行調整。大家看到,在運算中,當低四位向四高位進位時,是逢16進位為1,即按照十六進制的原則進行的運算,而BCD碼是十進制數,應按照逢十進一的原則進行運算,所以應將和的低四位加6以補上多拿走的6,調整為0111B。和的高四位1011B大于9,應向高位進位,同樣加上6進行調整,變為10001B。編寫出程序片段:MOVA,#68H;(A)=68H=01101000BADDA,#49H;(A)=B1HDAA;(A)=B1H+66H=17HCY=1代表100

結果:117必須寫BCD碼不能寫真值[例1-14]已知X=68,Y=49,求X+Y編寫出程74(2)BCD碼的減法運算兩個數的BCD碼進行減法運算時,

當低四位或高四位都不需借位時,可得到正確的運算結果。

[例1-15]

已知X=58,Y=25,求X-Y

解: [X]BCD碼 =01011000B

- [Y]BCD碼 =00100101B00110011B00110011B=[33]BCD碼=[58-25]BCD碼=[X-Y]BCD碼

當低四位或高四位有借位時,按十進制運算規則,向高位借1當10,而計算機中按二進制運算規則進行,借1當作16,因此運算后必須減6進行調整。(2)BCD碼的減法運算75

[例1-16]

已知X=68,Y=49,求X-Y

解: [X]BCD碼 = 01101000B

- [Y]BCD碼 = 01001001B

差 00011111BAC=1,CY=0

0110B 00011001B00011001B=[19]BCD碼=[68-49]BCD碼=[X-Y]BCD碼[例1-16]已知X=68,Y=49,求X-Y76說明:如果指令系統中有BCD碼的減法調整指令,即可直接用該指令完成上述調整。如果指令系統中沒有BCD碼的減法調整指令,則不能用減法指令直接對兩個BCD碼進行減法運算,而需對減數求補,進行加法運算,然后用加法運算的調整指令進行調整。對八位微機,BCD碼的模為100(十進制數),減去減數實現對減數的求補。為在八位加減運算電路中運算,將100表示成9AH,即10011010B,減去減數求補。說明:77[例1-17]

已知X=68,Y=49,求X-Y

解: [X]BCD碼 = 01101000B

- [Y]BCD碼 = 01001001B

模100 10011010B

- [Y]BCD碼 = 01001001B

+ 01010001B

10111001B

調整 + 01100000B 1 00011001B

這樣,在程序中將BCD碼的減法運算轉換為加法運算,然后利用加法運算的調整指令進行調整,即可得到正確的結果。

求補編寫出程序片段:CLRCMOVA,#9AH;(A)=9AHMODSUBBA,#49H;(A)=51HBCDADDA,#68H;(A)=B9H非BCDDAA;(A)=19HBCDCPLC;CY=0無借位,差=19HBCD

求補相加有進位,直接相減位無借位,反之,有借位。[例1-17]已知X=68,Y=49,求X-Y解:78算術運算小結(結合黑板,舉例說明)1、求補碼與求補求補碼:已知真值求補碼求補:兩個含義:減法變加法;減數變成模內互補的數。對于無符號數來說,減去一個數,在模內運算則等于加上一個與之互補的數。兩個互補的數的和等于模。對于帶符號數,由于符號位與數值位一起參與運算,當不溢出時,運算規律與無符號數相同。即把帶符號數當作無符號數一樣處理。求補的含義轉換為:已知[X]補,求[-X]補,減變加即減正變加負,減負變加正。例如:10-1=?按無符號做,10+255=9

按帶符號數做,10+[-1]補=10+0FFH=9

(模256丟失)算術運算小結(結合黑板,舉例說明)79

X-Y=X+2n-Y=2n+(X-Y)1、X>=Y,X-Y>=0,則

X-Y=2n+(X-Y)=X-Y,進位為2n,即模2n丟失,也即,X-Y=2n+(X-Y)>=2n

也即,直接相減沒借位,求補相加有進位;

2、X<Y,X-Y<0,則

X-Y=2n+(X-Y)<2n

也即,直接相減有借位,求補相加無進位。

對二進制數來說模為2n

對二進制數來說模為2n802、算術運算與標志位對于運算器來說:只根據加/減命令對送給它的兩個操作數進行相應的運算,并不區分是什么性質的數,并且根據運算結果,填寫標志位。其運算結果代表什么完全由用戶決定。一般情況下:無符號數運算判CY

定點帶符號補碼運算判溢出OVBCD碼運算判CY,機器調整判AC、CY2、算術運算與標志位81例:求62+98=?

1、作無符號數運算,結果0A0H=160,CY=0。一般,CY=0,結果在0~255之間,

CY=1,代表256,結果在0~256+255之間

2、做帶符號補碼運算,OV=1,正溢出,結果無意義。一般,結果應在-128~127之間,超出則溢出。可擴大位數到16位再重新做。

3、做BCD碼運算,必須送BCD碼,調整后,CY=1,代表100,(A)=60H,代表60,合成后代表160。一般,CY=0,結果在00~99之間

CY=1,代表100,結果在00~199之間

4、位數相同,性質不同的數,表示數的范圍不同。例:求62+98=?82計算機由專門的邏輯電路完成一些邏輯運算。邏輯運算都是位對位運算,即運算中位與位之間互不相關,不存在進位或借位,比算術運算簡單。(1)邏輯與運算邏輯與的運算符為“∧”,其運算規則為:

0∧0=00∧1=l∧0=01∧1=1邏輯與運算的真值表ABA∧B000010100111例如:在八位微機中,邏

溫馨提示

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

評論

0/150

提交評論