第一周 微型計(jì)算機(jī)基礎(chǔ)概論
大家好,又是我,沉迷學(xué)習(xí)無(wú)法自拔的小笨蛋康sir。
這個(gè)文集將會(huì)同步更新我觀看吳寧老師的《微機(jī)原理與接口技術(shù)》教學(xué)視頻寫的筆記,學(xué)習(xí)筆記,大概每周一章。
有問(wèn)題大家可以在評(píng)論下面留言討論,歡迎糾錯(cuò)!
歡迎收藏閱讀,動(dòng)動(dòng)小手給個(gè)硬幣點(diǎn)個(gè)贊。
????????????????????????????????????????????????????????????????——@正能量的康sir
也可移步我的博客(https://blog.csdn.net/qq_33956508)獲得更好的閱讀體驗(yàn),也會(huì)更新一些其它技術(shù)類文章。

第1講 關(guān)于本課程
未來(lái)從事計(jì)算機(jī)應(yīng)用系統(tǒng)研究,特別是過(guò)程控制系統(tǒng)設(shè)計(jì)。
先修知識(shí):《大學(xué)計(jì)算機(jī)》課程和軟件類課程學(xué)習(xí)經(jīng)驗(yàn)。
計(jì)算機(jī)的主要應(yīng)用:數(shù)值計(jì)算、信息處理、過(guò)程控制,本課程關(guān)注過(guò)程控制(主要是工業(yè)過(guò)程控制)。
這是計(jì)算機(jī)硬件技術(shù)。
主要內(nèi)容:計(jì)算機(jī)基礎(chǔ)知識(shí)+微型計(jì)算機(jī)的基本原理+輸入輸出接口技術(shù)
案例1:家庭安全防盜系統(tǒng)設(shè)計(jì)
為一棟含8個(gè)窗戶的家庭設(shè)計(jì)
功能要求:每個(gè)窗臺(tái)有監(jiān)測(cè)裝置,當(dāng)某一裝置連續(xù)5次檢測(cè)出異常時(shí),啟動(dòng)報(bào)警(警鈴響、警燈閃爍)
可以根據(jù)需要布防和關(guān)閉
案例分析:
系統(tǒng)涉及硬件線路和控制程序
如何檢測(cè)出有無(wú)異常
檢測(cè)到的信息在計(jì)算機(jī)中如何便是
如何確定一場(chǎng)次數(shù)?是否來(lái)自同一檢測(cè)裝置?
如何啟動(dòng)和停止報(bào)警
案例2:溫室溫度控制系統(tǒng)
溫室溫度25°C ~38°C
實(shí)時(shí)顯示2位溫室溫度
給定時(shí)間內(nèi)不能保證溫度在要求范圍時(shí),發(fā)出報(bào)警信號(hào)
案例分析:
設(shè)計(jì)硬件系統(tǒng):溫度測(cè)量電路、溫度控制電路、溫度顯示電路、報(bào)警電路
設(shè)計(jì)軟件系統(tǒng):溫度檢測(cè)、溫度控制(根據(jù)檢測(cè)值和給定控制電爐通/斷)、顯示溫度、報(bào)警輸出
試問(wèn)如何讀取并被計(jì)算機(jī)識(shí)別?溫度如何顯示?怎樣實(shí)現(xiàn)報(bào)警?
系統(tǒng)結(jié)構(gòu)框架:

溫度:連續(xù)變化的量,必須轉(zhuǎn)換成數(shù)字信號(hào)(離散的電信號(hào))
完成系統(tǒng)設(shè)計(jì)將涉及:
數(shù)據(jù)在計(jì)算機(jī)中表示
現(xiàn)場(chǎng)數(shù)據(jù)的采集(獲取)、轉(zhuǎn)換
現(xiàn)場(chǎng)數(shù)據(jù)的存儲(chǔ)、處理
本課程主要講授:
1、數(shù)值信息表示
2、微型機(jī)基本原理(微處理結(jié)構(gòu)、Intel80x86)
3、匯編程序設(shè)計(jì)
4、半導(dǎo)體存儲(chǔ)器及其接口設(shè)計(jì)
5、輸入輸出技術(shù)(數(shù)字并行接口、模擬量并行接口)
3屬于軟件設(shè)計(jì),4、5屬于硬件設(shè)計(jì)
這門課將帶給你:
微型計(jì)算機(jī)基本工作原理理解
簡(jiǎn)單輸入輸出接口控制系統(tǒng)軟硬件的初步設(shè)計(jì)
第2講 微型計(jì)算機(jī)系統(tǒng)組成
計(jì)算機(jī)系統(tǒng):硬件系統(tǒng)、軟件系統(tǒng)。
我們講硬件系統(tǒng)。
硬件系統(tǒng)包括主機(jī)系統(tǒng)、外部設(shè)備。
主機(jī)系統(tǒng):CPU、存儲(chǔ)器、輸入輸出接口、總線
外部設(shè)備:所有可以通過(guò)輸入輸出接口與計(jì)算機(jī)進(jìn)行信息交互的電子設(shè)備。
我們講主機(jī)系統(tǒng)。
(1)微處理器
微處理器簡(jiǎn)稱CPU,是計(jì)算機(jī)的核心。主要包括運(yùn)算器、控制器、寄存器組。

(2)存儲(chǔ)器
計(jì)算機(jī)中的記憶裝置。用于存放計(jì)算機(jī)工作過(guò)程中需要操作的數(shù)據(jù)和程序。

接下來(lái)的授課不做特殊說(shuō)明“存儲(chǔ)器”一般指內(nèi)存儲(chǔ)器。
內(nèi)存儲(chǔ)器
(內(nèi)存條)
特點(diǎn):
存取速度較快,容量相對(duì)較小;
內(nèi)存按單元組織,每單元對(duì)應(yīng)一個(gè)唯一的地址;(內(nèi)存地址,十六進(jìn)制)
每個(gè)內(nèi)存單元中存放1Bytc數(shù)據(jù);(單元內(nèi)容,8位二進(jìn)制)
內(nèi)存單元個(gè)數(shù)稱為內(nèi)存容量。

有關(guān)存儲(chǔ)器的術(shù)語(yǔ):
存儲(chǔ)容量:存放的數(shù)據(jù)量。用字節(jié)表示。(8位二進(jìn)制)
對(duì)存儲(chǔ)器的操作:讀(出)指將內(nèi)存單元的內(nèi)容取入CPU,原單元內(nèi)容不改變;寫(入)指CPU將信息放入內(nèi)存單元,單元中原來(lái)的內(nèi)容被覆蓋。對(duì)某個(gè)器件的讀/寫相當(dāng)于與其進(jìn)行信息交換。
內(nèi)存儲(chǔ)器的分類
按工作方式:隨機(jī)存取存儲(chǔ)器(RAM,掉電以后數(shù)據(jù)會(huì)丟),只讀存儲(chǔ)器(ROM)
輸入輸出接口
接口是CPU與外部設(shè)備間的橋梁
(平滑連接了高速cpu和低速的外部設(shè)備)
主要功能:
數(shù)據(jù)緩沖寄存;
信號(hào)電平或類型的轉(zhuǎn)換;
實(shí)現(xiàn)主機(jī)與外設(shè)間的運(yùn)行匹配。
CPU<——>I/O接口<——>外設(shè)
總線
是一組導(dǎo)線和相關(guān)的控制、驅(qū)動(dòng)電路的集合。
是計(jì)算機(jī)系統(tǒng)各部件之間傳輸?shù)刂?、?shù)據(jù)和控制信息的通道
地址總線(AB,全稱Address Bus)
數(shù)據(jù)總線(DB,全稱Date Bus)
控制總線(CB,全稱Control Bus)
軟件系統(tǒng)
軟件:為運(yùn)行、管理和維護(hù)計(jì)算機(jī)系統(tǒng)或?yàn)閷?shí)現(xiàn)某一功能而編寫的各種程序的總和及其相關(guān)資料。
分類:
系統(tǒng)軟件:操作系統(tǒng)、編譯系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)、工具軟件
應(yīng)用軟件
微機(jī)系統(tǒng)概念結(jié)構(gòu)

主機(jī)系統(tǒng)特征:
能夠與CPU直接進(jìn)行信息交換的部件屬于主機(jī)系統(tǒng)
不能夠與CPU直接進(jìn)行信息交換的部件屬于外部設(shè)備
第3講 微型計(jì)算機(jī)的一般工作過(guò)程
計(jì)算機(jī)的工作就是執(zhí)行程序。程序就是指令的序列。
計(jì)算機(jī)的工作就是按照一定的順序,一條一條地執(zhí)行指令。
計(jì)算機(jī)中指令的執(zhí)行過(guò)程
指令:由人向計(jì)算機(jī)發(fā)出的、能夠位計(jì)算機(jī)所識(shí)別的命令
計(jì)算機(jī)的工作是逐條執(zhí)行由指令構(gòu)成的程序。
計(jì)算機(jī)的工作過(guò)程就是執(zhí)行程序的過(guò)程
程序是指令的序列,計(jì)算機(jī)的工作過(guò)程就是執(zhí)行指令的過(guò)程

指令的執(zhí)行過(guò)程
取指令——>分析指令——>讀取操作數(shù)——>執(zhí)行指令——>存放結(jié)果
其中,取指令、分析指令、執(zhí)行指令是核心步驟,讀取操作數(shù)如果需要操作數(shù)才有,
順序執(zhí)行:一條指令執(zhí)行完了再執(zhí)行下一條指令。
并行執(zhí)行:同時(shí)執(zhí)行兩條或多條指令。
執(zhí)行時(shí)間=取指令+分析指令+執(zhí)行指令
設(shè):三個(gè)部分的執(zhí)行時(shí)間均為△t,則:執(zhí)行n條指令時(shí)間T0為:
順序執(zhí)行T0=3n△t
并行執(zhí)行:理想情況下,僅第一條指令需要3△t,之后每經(jīng)過(guò)1△t就有一條指令執(zhí)行結(jié)束。T=3△t+(n-1) △t.
(注:取指令時(shí)總線會(huì)忙碌)


兩種執(zhí)行方式時(shí)間的比較
并行:更高的效率,更高的復(fù)雜度
設(shè)加速比S=順序執(zhí)行花費(fèi)的時(shí)間/并行執(zhí)行華為的時(shí)間
S=3n△t/(3△t+(n-1) △t)=3n/(2+n)
2.馮·諾依曼計(jì)算機(jī)
馮·諾依曼計(jì)算機(jī)的工作原理:存儲(chǔ)程序工作原理
結(jié)構(gòu)特點(diǎn):運(yùn)算器為核心
馮·諾依曼計(jì)算機(jī)的工作過(guò)程:


取一條指令的工作過(guò)程:
將指令所在地址賦給程序計(jì)數(shù)器PC(program counter);
② PC內(nèi)容送到地址寄存器AR,PC自動(dòng)加1;
③ 把AR的內(nèi)容通過(guò)地址總線送至內(nèi)存儲(chǔ)器,經(jīng)地址譯碼器譯碼,選中相應(yīng)單元。
④ CPU的控制器發(fā)出讀命令。
⑤ 在讀命令控制下,把所選中單元的內(nèi)容(即指令操作碼)讀到數(shù)據(jù)總線DB。
⑥ 把讀出的內(nèi)容經(jīng)數(shù)據(jù)總線送到數(shù)據(jù)寄存器DR。
⑦ 指令譯碼:數(shù)據(jù)寄存器DR將它送到指令寄存器IR,然后再送到指令譯碼器ID
馮·諾依曼計(jì)算機(jī)體系結(jié)構(gòu)

注:運(yùn)算器和控制器是CPU的·組成部分,存儲(chǔ)器這里是內(nèi)存儲(chǔ)器。
馮·諾依曼機(jī)的特點(diǎn)和不足
特點(diǎn):程序存儲(chǔ),共享數(shù)據(jù),順序執(zhí)行。屬于順序處理機(jī),適合于確定的算法和數(shù)值數(shù)據(jù)的處理。
不足: 與存儲(chǔ)器間有大量數(shù)據(jù)交互,對(duì)總線要求很高。
執(zhí)行順序由程序決定,對(duì)大型復(fù)雜任務(wù)較困難
以運(yùn)算器為核心,處理效率低
由PC控制執(zhí)行順序,難以進(jìn)行真正的并行處理。
哈佛結(jié)構(gòu):
指令和數(shù)據(jù)分別存放在兩個(gè)獨(dú)立的存儲(chǔ)器模塊中;
CPU與存儲(chǔ)器間指令和數(shù)據(jù)的傳送分別采用兩組獨(dú)立的總線;(以存儲(chǔ)器為核心)
可以在一個(gè)機(jī)器周期內(nèi)同時(shí)獲得指令操作碼和操作數(shù)。

第4講 常用計(jì)數(shù)制及其轉(zhuǎn)換
1. 常用計(jì)數(shù)制
人類最習(xí)慣的計(jì)數(shù)制是十進(jìn)制
計(jì)算機(jī)由具有兩種狀態(tài)的開(kāi)關(guān)器件組成,可以用0和1分別表示兩種不同的狀態(tài)
? 計(jì)算機(jī)中采用二進(jìn)制
? 計(jì)算機(jī)硬件惟一能夠識(shí)別的是二進(jìn)制數(shù)。
任何其它計(jì)數(shù)制和各種信息要讓計(jì)算機(jī)處理,都需要借助軟件轉(zhuǎn)換為二進(jìn)制。
計(jì)算機(jī)中的常用計(jì)數(shù)制:十進(jìn)制、二進(jìn)制數(shù)、十六進(jìn)制數(shù)、八進(jìn)制數(shù)
十進(jìn)制表示法
特點(diǎn):以十為底,逢十進(jìn)一;共有0-9十個(gè)數(shù)字符號(hào)。用D(decimal)代表。

二進(jìn)制表示法
特點(diǎn):以2為底,逢2進(jìn)位;只有0和1兩個(gè)符號(hào)。用B(binary)表示。

(3)引入十六進(jìn)制、八進(jìn)制數(shù)的理由
十進(jìn)制數(shù)100000的二進(jìn)制表示11000011010100000
四位一組1 1000 0110 1010 0000
十六進(jìn)制1 8 6 A 0
(4)十六進(jìn)制表示法
? 特點(diǎn):
? 有0--9及A--F共16個(gè)數(shù)字符號(hào);逢16進(jìn)位。用H(hex)表示

(5)八進(jìn)制表示法
? 特點(diǎn):有0--7共8個(gè)數(shù)字符號(hào);逢8進(jìn)位,用O(octal)表示。

標(biāo)識(shí)符
234.98或234.98D或(234.98)D
? 1101.11B或(1101.11)B
? 271.54O或(271.54)O
? ABCD . BFH或(ABCD . BF)H
計(jì)數(shù)制的通用表達(dá)式
對(duì)任意一種計(jì)數(shù)制,都可以用以下權(quán)展開(kāi)式表示:

2.各種進(jìn)制數(shù)間的轉(zhuǎn)換
(1)非十進(jìn)制數(shù)到十進(jìn)制數(shù)的轉(zhuǎn)換:
按相應(yīng)的權(quán)表達(dá)式展開(kāi)
1011.11B=1×23+0×22+1×21+1×20+1×2-1+1×2-2=8+2+1+0.5+0.25=11.75
5B.8H=5×161+11×160+8×16-1=80+11+0.5=91.5
(2)十進(jìn)制到非十進(jìn)制數(shù)的轉(zhuǎn)換
? 對(duì)二進(jìn)制的轉(zhuǎn)換:對(duì)整數(shù):除2取余;對(duì)小數(shù):乘2取整。

? 對(duì)十六進(jìn)制的轉(zhuǎn)換:對(duì)整數(shù):除16取余;對(duì)小數(shù):乘16取整。
? 對(duì)八進(jìn)制的轉(zhuǎn)換:對(duì)整數(shù):除8取余;對(duì)小數(shù):乘8取整。
(3)非十進(jìn)制數(shù)與二進(jìn)制數(shù)的轉(zhuǎn)換
十六進(jìn)制數(shù)與二進(jìn)制的轉(zhuǎn)換
用4位二進(jìn)制數(shù)表示1位十六進(jìn)制數(shù)
整數(shù)部分,從小數(shù)點(diǎn)向左組,每4位一組,不夠4位的高位補(bǔ)0.小數(shù)部分,從小數(shù)點(diǎn)向右分組,不夠4位的在低位補(bǔ)0。
例子:25.5=11001.1B=00011001.1000B=19.8H
? ? ?1100 1010.0110 1010B=CA.6AH
? ? ? ?八進(jìn)制數(shù)與二進(jìn)制的轉(zhuǎn)換
? ? ? ? ? ?用3位二進(jìn)制數(shù)表示1位八進(jìn)制數(shù)
? ? ? ? ? ?整數(shù)部分,從小數(shù)點(diǎn)向左組,每3位一組,不夠3位的高位補(bǔ)0。
? ? ? ? ? ?小數(shù)部分,從小數(shù)點(diǎn)向右分組,不夠3位的在低位補(bǔ)0。
? ? ? ? ? ?例子:11001010.0110101B=011 001 010.011 010 100B=(312.324)O
第5講 計(jì)算機(jī)中的編碼
編碼
信息從一種形式或格式轉(zhuǎn)換為另一種形式的過(guò)程。
用代碼表示各種信息,以便于計(jì)算機(jī)處理
需要編碼的信息種類
數(shù)值
字符
聲音
圖形、圖像
計(jì)算機(jī)中的編碼
數(shù)值編碼:二進(jìn)制、BCD碼
西文字符編碼:ASCII碼
BCD碼
BCD(Binary Coded Decimal二進(jìn)制編碼的十進(jìn)制)碼
? 用二進(jìn)制表示的十進(jìn)制數(shù)
? 特點(diǎn):
? 保留十進(jìn)制的權(quán),數(shù)字用0和1表示。
8421BCD編碼:
? 用4位二進(jìn)制碼表示1位十進(jìn)制數(shù),每4位之間有一個(gè)空格
1010—1111是非法BCD碼(因?yàn)楸?0大了),只是合法的十六進(jìn)制數(shù)
BCD碼碼與十進(jìn)制和二十進(jìn)制數(shù)之間的轉(zhuǎn)換
BCD碼與十進(jìn)制數(shù)之間存在直接對(duì)應(yīng)關(guān)系
例:(1001 1000 0110.0011)BCD=986.3
BCD碼與二進(jìn)制的轉(zhuǎn)換
先轉(zhuǎn)換為十進(jìn)制數(shù),再轉(zhuǎn)換二進(jìn)制數(shù);反之同樣。
(0001 0001 .0010 0101)BCD=11 .25=(1011 .01)B
BCD碼在計(jì)算機(jī)中的存儲(chǔ)方式
? 以壓縮BCD碼形式存放:
? 用4位二進(jìn)制碼表示1位BCD碼
? 一個(gè)存儲(chǔ)單元中存放2位BCD數(shù)
? 以擴(kuò)展BCD碼形式存放
? 用8位二進(jìn)制碼表示1位BCD碼.即高4位為0,低4位為有效位
? 每個(gè)存儲(chǔ)單元存放1位BCD
ASCII碼
西文字符編碼
將每個(gè)字母、數(shù)字、標(biāo)點(diǎn)、控制符用1Byte二進(jìn)制碼表示
其中:標(biāo)準(zhǔn)ASCII的有效位:7bit,最高位默認(rèn)為0。(現(xiàn)在使用的是擴(kuò)展ASCII碼,8位,這門課不涉及)
下表中A-F,0-9要熟記

ASCII碼的奇偶校驗(yàn)
奇校驗(yàn)
? 加上校驗(yàn)位后編碼中“1”的個(gè)數(shù)為奇數(shù)。
? 例:A的ASCII碼是41H(1000001B)
? 以奇校驗(yàn)傳送則最高位前加1,為 C1H(11000001B)
偶校驗(yàn)
? 加上校驗(yàn)位后 編碼中“1”的個(gè)數(shù)為偶數(shù)。
? 上例若以偶校驗(yàn)傳送,則不需要變化,為 41H。
隨堂練習(xí)
10010110.1001B =(150.5625)D=(0001 0101 0000.0101 0110 0010 0101)BCD
1F3DH= (7997)D =(0111 1001 1001 0111)BCD
若以奇校驗(yàn)傳送字母B,則B的ASCII=(C2)H=( 11000010)B
第6講 計(jì)算機(jī)中數(shù)的表示與運(yùn)算
計(jì)算機(jī)中的二進(jìn)制數(shù)表示與運(yùn)算
按數(shù)的表表示方法分類
定點(diǎn)數(shù):小數(shù)點(diǎn)固定的一種數(shù)。早期計(jì)算機(jī)用。不足:編程時(shí)需要確定小數(shù)點(diǎn)位置;難以表示兩個(gè)大小相差較大的數(shù);存儲(chǔ)空間利用率低。
定點(diǎn)整數(shù):小數(shù)點(diǎn)在最右
定點(diǎn)小數(shù):小數(shù)點(diǎn)在最左
浮點(diǎn)數(shù)(現(xiàn)在普遍使用,稍后重點(diǎn)講)
按數(shù)的性質(zhì)分類
無(wú)符號(hào)數(shù):數(shù)中所有的0和1都是數(shù)據(jù)本身
有符號(hào)數(shù):需用0或1表示數(shù)的性質(zhì)(整數(shù)或復(fù)數(shù))
各種編碼多視為無(wú)符號(hào)數(shù),數(shù)值多視為有符號(hào)數(shù)
無(wú)符號(hào)數(shù)和有符號(hào)數(shù)都是機(jī)器數(shù)
浮點(diǎn)數(shù)
浮點(diǎn)數(shù):小數(shù)點(diǎn)的位置可以左右移動(dòng)的數(shù)
0.35x102
2是階碼,10是階基(二進(jìn)制中是2),35是尾數(shù)(小數(shù)點(diǎn)后面的部分)

規(guī)格化浮點(diǎn)數(shù):尾數(shù)部分用純小數(shù)表示,即小數(shù)點(diǎn)右邊第1位不為0。
無(wú)符號(hào)數(shù)
無(wú)符號(hào)數(shù)的算術(shù)運(yùn)算
加法運(yùn)算:1+1=10(有進(jìn)位)
減法運(yùn)算:10-1=01(有借位)
乘法運(yùn)算:00001011×0100=00101100B, 每乘以2,相對(duì)于被乘數(shù)向左移動(dòng)1位
除法運(yùn)算:00001011÷0100 =00000010B商=00000010B 余數(shù)=11B,每除以2,相對(duì)于被除數(shù)向右移動(dòng)1位
有符號(hào)數(shù)
有符號(hào)數(shù):用最高位表示符號(hào),其余是數(shù)值。0表示正數(shù),1表示負(fù)數(shù)。
符號(hào)數(shù)的表示方法:原碼、反碼、補(bǔ)碼
注意:數(shù)的性質(zhì)由設(shè)計(jì)者決定,在低級(jí)語(yǔ)言程序設(shè)計(jì)中,根據(jù)數(shù)的性質(zhì)由程序語(yǔ)言處理(按無(wú)符號(hào)數(shù)或有符號(hào)數(shù)處理)(硬件無(wú)法識(shí)別,由程序員確定)
原碼
最高位為符號(hào)位,其余為真值部分。 [X]原=符號(hào)位+|絕對(duì)值|
優(yōu)點(diǎn):真值和其原碼表示之間的對(duì)應(yīng)關(guān)系簡(jiǎn)單,容易理解
缺點(diǎn):計(jì)算機(jī)中用原碼進(jìn)行加減運(yùn)算比較困難;0的表示不唯一([+0]原=0 0000000,[-0]原=1 0000000)。
反碼
對(duì)一個(gè)機(jī)器X:
若X>0 ,則 [X]反=[X]原
若X<0, 則 [X]反=對(duì)應(yīng)原碼的符號(hào)位不變,數(shù)值部分按位求反。
例子:X=-52=-0110100
[X]原=1 0110100
[X]反=1 1001011
數(shù)0的反碼也不是唯一的。[+0]反=[+0]原=00000000,[-0]反=[-0]原數(shù)值部分分按位取反=11111111
補(bǔ)碼
若X>0, 則[X]補(bǔ)= [X]反= [X]原
若X<0, 則[X]補(bǔ)= [X]反+1
例:X=-52=-0110100
[X]原=1 0110100
[X]反=1 1001011
[X]補(bǔ)=[X]反+1=11001100
數(shù)0的補(bǔ)碼是唯一的。
[+0]補(bǔ)=[+0]原=00000000,[-0]補(bǔ)=[-0]反+1=11111111+1=1 00000000 對(duì)8位字長(zhǎng),進(jìn)位被舍掉就為00000000和[+0]補(bǔ)相同。
補(bǔ)碼的說(shuō)明:
鐘表將指針從5點(diǎn)撥到1點(diǎn)
兩種撥法
逆時(shí)針撥:5-4=1
順時(shí)針撥:5+8=12+1=1 (12為模,自動(dòng)丟失)
于是,對(duì)模12有5-4=5+8
8和-4互為補(bǔ)數(shù)
[-4]補(bǔ)=12-4=8
5-4=5+(-4)=5+(12-4)=5+8=12+1
補(bǔ)碼的好處:實(shí)現(xiàn)將減法運(yùn)算轉(zhuǎn)換為加法運(yùn)算。
補(bǔ)碼的算數(shù)運(yùn)算
[X+Y]補(bǔ)=[X]補(bǔ)+[Y]補(bǔ)
[X-Y]補(bǔ)=[X+(-Y)]補(bǔ) =[X]補(bǔ)+[-Y]補(bǔ)
例一:66-51=66+(-51)=15
用補(bǔ)碼運(yùn)算
[+66]補(bǔ)= [+66]原= 01000010
[-51]原=10110011
[-51]補(bǔ)=[-51]反+1=11001100+1=11001101
[+66]補(bǔ)+ [-51]補(bǔ)=1 00001111=15
例二:X=-52=-0110100,Y=116=+1110100,求X+Y=?
[X]原=10110100
[X]補(bǔ)= [X]反+1=11001100
[Y]補(bǔ)= [Y]原=01110100
[X+Y]補(bǔ)= [X]補(bǔ)+ [Y]補(bǔ)=11001100+01110100=0 1000000
X+Y=+1000000
現(xiàn)代計(jì)算機(jī)系統(tǒng)中,程序設(shè)計(jì)時(shí),負(fù)數(shù)可用“-”表示,由編譯系統(tǒng)將其轉(zhuǎn)換為補(bǔ)碼。
例:若輸入數(shù)=-3
程序編譯后的值=FDH
特殊數(shù)10000000
無(wú)符號(hào)數(shù):(10000000)B=128
在原碼中定義為:(10000000)B=-0
在反碼中定義為:(10000000)B= -127
在補(bǔ)碼中定義為:(10000000)B= -128
計(jì)算機(jī)能力的局限性
計(jì)算機(jī)的運(yùn)算能力是有限的
? 計(jì)算機(jī)無(wú)力解決無(wú)法設(shè)計(jì)出算法的問(wèn)題
? 無(wú)法處理無(wú)窮運(yùn)算或連續(xù)變化的信息
計(jì)算機(jī)能夠表示的數(shù)(表數(shù))的范圍是有限的
? 計(jì)算機(jī)的表數(shù)范圍受字長(zhǎng)的限制
? 例:對(duì)8位機(jī):
? 無(wú)符號(hào)數(shù)的最大值:1111 1111
有符號(hào)正數(shù)的最大值:0111 1111
當(dāng)運(yùn)算結(jié)果超出計(jì)算機(jī)表數(shù)范圍時(shí),將產(chǎn)生溢出
(1)無(wú)符號(hào)整數(shù)的表示范圍:
? 當(dāng)計(jì)算機(jī)中數(shù)的運(yùn)行結(jié)果超出表數(shù)范圍時(shí),則產(chǎn)生溢出。
? 無(wú)符號(hào)整數(shù)的表數(shù)范圍:
? 0 ≤ X ≤ 2n-1,n表示字長(zhǎng)
無(wú)符號(hào)數(shù)加減運(yùn)算溢出的判斷方法:
當(dāng)最高位向更高位有進(jìn)位(或借位)時(shí)則產(chǎn)生溢出
[例]:2個(gè)8位數(shù)的加法運(yùn)算
最高位向前有進(jìn)位,產(chǎn)生溢出
11111111
+ 00000001
=1 00000000
最高位向前有進(jìn)位,產(chǎn)生溢出
溢出位超出8位有效字長(zhǎng)
在有效字長(zhǎng)范圍內(nèi),結(jié)果為0, 出錯(cuò)
(2)有符號(hào)整數(shù)的表示范圍
原碼和反碼:-(2n-1) ≤X≤2n-1-1
補(bǔ)碼:-2n-1≤X≤2n-1-1
對(duì)8位二進(jìn)制數(shù):
原碼:-127~+127
反碼:-127~+127
補(bǔ)碼:-128~+127
符號(hào)數(shù)運(yùn)算中的溢出判斷
? 兩個(gè)有符號(hào)二進(jìn)制數(shù)相加或相減時(shí),若運(yùn)算結(jié)果超出可表達(dá)范圍,則產(chǎn)生溢出.
? 溢出的判斷方法:
? 最高位進(jìn)位狀態(tài)+次高位進(jìn)位狀態(tài)=1,則結(jié)果溢出
除法運(yùn)算溢出時(shí),產(chǎn)生"除數(shù)為0"中斷;乘法運(yùn)算無(wú)溢出問(wèn)題。
[例]:
? 若:X=01111000, Y=01101001
則:X+Y=
01111000
+01101001
=11100001
?
次高位向最高位有進(jìn)位,而最高位向前無(wú)進(jìn)位,產(chǎn)生溢出。
(事實(shí)上,兩正數(shù)相加得出負(fù)數(shù),結(jié)果出錯(cuò))
符號(hào)二進(jìn)制數(shù)與十進(jìn)制的轉(zhuǎn)換
轉(zhuǎn)換方法:
? 求出真值
? 進(jìn)行轉(zhuǎn)換
計(jì)算機(jī)中的符號(hào)數(shù)默認(rèn)以補(bǔ)碼形式表示。
原碼=符號(hào)位+絕對(duì)值
正數(shù)的補(bǔ)碼=原碼=符號(hào)位+絕對(duì)值
∵負(fù)數(shù)的補(bǔ)碼≠原碼 ∴負(fù)數(shù)的補(bǔ)碼≠符號(hào)位+絕對(duì)值
那么,負(fù)數(shù)的補(bǔ)碼如何得到真值呢
例:補(bǔ)碼數(shù)轉(zhuǎn)換為十進(jìn)制數(shù)
設(shè):
? [X]補(bǔ)=0 0101110B ?真值=+0101110B ?X=+101110B=+46
若設(shè):
? [X]補(bǔ)=1 1010010B ?X≠-1010010B ?欲求X真值,需對(duì)[X]補(bǔ)再取補(bǔ)
X=[[X]補(bǔ)]補(bǔ)=[11010010]補(bǔ)= - 0101110 = - 46
對(duì)正數(shù):
? 補(bǔ)碼=反碼=原碼,且 原碼=符號(hào)位+真值
? 所以:正數(shù)補(bǔ)碼的數(shù)制部分為真值
因正數(shù)的反碼、補(bǔ)碼與其對(duì)應(yīng)的原碼相同,故其數(shù)值部分亦為真值
對(duì)負(fù)數(shù):
? 補(bǔ)碼≠反碼≠ 原碼
? 所以:負(fù)數(shù)補(bǔ)碼的數(shù)制部分≠真值
負(fù)數(shù)只有原碼的數(shù)值部分是真值
負(fù)數(shù)反碼和補(bǔ)碼的數(shù)值部分都不是真值
第7講 基本邏輯運(yùn)算與邏輯門
關(guān)于邏輯
邏輯:是思維規(guī)律,事物因果之間所遵循的規(guī)律。邏輯的基本表現(xiàn)形式是命題和推理
命題:能判斷真假的陳述語(yǔ)句
推理:從前提推出結(jié)論的思維過(guò)程。前題是已知的命題,結(jié)論是通過(guò)推理規(guī)則得出的命題。
關(guān)于邏輯——命題
語(yǔ)句例:
2+3=5——真命題
3是偶數(shù)——假命題
明天上午有課嗎?——不是命題
3不是偶數(shù)——非(否定)
小明既學(xué)過(guò)英語(yǔ),也學(xué)過(guò)德語(yǔ)——并(同時(shí))
從先到北京經(jīng)鄭州走,或者經(jīng)太原走——或者
復(fù)合命題可以由簡(jiǎn)單命題通過(guò)“聯(lián)結(jié)詞”所表示的運(yùn)算得到。
命題是邏輯的基本表現(xiàn)形式,所以,“聯(lián)結(jié)詞”所表示的運(yùn)算就是邏輯運(yùn)算。
并非——“非“運(yùn)算
并且——“與“運(yùn)算
或者——“或“運(yùn)算
命題的“真”和“假”可以對(duì)應(yīng)為
在物理上:開(kāi)關(guān)的“斷開(kāi)”和“閉合”,電平的“高”和“低”,……
在數(shù)學(xué)上:二進(jìn)制的“1”和“0”
現(xiàn)代計(jì)算機(jī)由各種邏輯器件構(gòu)成,數(shù)學(xué)基礎(chǔ)是邏輯代數(shù)
邏輯代數(shù)
? 邏輯代數(shù)由英國(guó)數(shù)學(xué)家喬治·布爾發(fā)明
? 主要研究和判斷相關(guān)的運(yùn)算
? 用字母表示變量,變量的取值只有0和1?!?”對(duì)應(yīng)“假”,“1”對(duì)應(yīng)“真
邏輯運(yùn)算與基本邏輯門
邏輯運(yùn)算
用符號(hào)來(lái)表示命題及其聯(lián)結(jié)關(guān)系
例如:命題“小明及學(xué)過(guò)英語(yǔ),也學(xué)過(guò)德語(yǔ)“可以符號(hào)化為:A and B
表示兩個(gè)命題之間具有邏輯關(guān)系——真值表
邏輯關(guān)系真值表

1.“與“運(yùn)算
“與“運(yùn)算
僅當(dāng)輸入條件全部為“真“時(shí),輸出得結(jié)果為”真“
若輸入條件有一個(gè)為“假“,則輸出結(jié)果為”假“
“與“運(yùn)算符號(hào):“·”, “∧”
若用1表示“真”,用0表示“假”,則與規(guī)則:1∧1=1, 1∧0=0, 0∧1=0, 0∧0=0
在電路中,與運(yùn)算相當(dāng)于開(kāi)關(guān)的串聯(lián)電路。僅當(dāng)所有開(kāi)關(guān)都閉合時(shí),電路才通電。

與門(AND gate)
對(duì)多個(gè)邏輯變量執(zhí)行“與”運(yùn)算的門電路


?


“或”運(yùn)算
“或”運(yùn)算
? 輸入條件中有一個(gè)為“真”,則輸出的結(jié)果為“真”
? 僅當(dāng)輸入條件全部為“假”時(shí),輸出結(jié)果才為“假”
“或”運(yùn)算符號(hào):“+”,“∨”
“或”運(yùn)算規(guī)則: 0∨0=0 ,0∨1=1, 1∨0=1, 1∨1=1
電路中,“或”運(yùn)算相當(dāng)于開(kāi)關(guān)的并聯(lián)電路
僅當(dāng)所有開(kāi)關(guān)都斷開(kāi)時(shí),電路才無(wú)電流通過(guò)。

或門(OR gate)
對(duì)多個(gè)邏輯變量執(zhí)行“或”運(yùn)算的門電路



“非”運(yùn)算
“非”運(yùn)算:
? 當(dāng)決定事件結(jié)果的條件滿足時(shí),事件不發(fā)生。
? 非”屬于單邊運(yùn)算,只有一個(gè)運(yùn)算對(duì)象,運(yùn)算符為一條上橫線??梢员硎緸椋篈=B。
“非”運(yùn)算
“非”運(yùn)算電路的表示:當(dāng)開(kāi)關(guān)斷開(kāi)時(shí)燈亮;開(kāi)關(guān)閉合時(shí)燈滅。

非門電路(NOT gate)
對(duì)單個(gè)邏輯變量進(jìn)行“非”運(yùn)算
F=A

小結(jié):
邏輯運(yùn)算與數(shù)學(xué)運(yùn)算的區(qū)別:
算術(shù)運(yùn)算是兩個(gè)數(shù)之間的運(yùn)算,低位運(yùn)算結(jié)果將對(duì)高位運(yùn)算產(chǎn)生影響;
邏輯運(yùn)算是按位進(jìn)行的運(yùn)算,低位運(yùn)算結(jié)果對(duì)高位運(yùn)算不產(chǎn)生影響
當(dāng)“與”門的輸入端有1位為低電平(0)時(shí),則輸出為“0”
當(dāng)“或”門的輸入端有1位為高電平(1)時(shí),則輸出為“1”
(以上兩種情況,其它輸入對(duì)輸出不會(huì)產(chǎn)生影響,我們稱對(duì)“與”門(或“或”門)進(jìn)行了“封鎖”)
第8講 其它常用邏輯運(yùn)算及其邏輯電路
“與非“邏輯
“與”運(yùn)算 + “非”運(yùn)算= “與非”運(yùn)算
A·B或者A∧B
將與門的輸出接入非門的輸入,構(gòu)成“與非門”

“或非”邏輯
“或”運(yùn)算 + “非”運(yùn)算=“或非”運(yùn)算
A+B 或者 A∨B
將或門的輸出接入非門的輸入,構(gòu)成“或非門”

“與非門”和“或非”小結(jié)
“與非門”及“或非門”均為多輸入單輸出的門電路
可實(shí)現(xiàn)多個(gè)變量的“與非”或者“或非”運(yùn)算
例子:

“異或”邏輯
“異或”邏輯關(guān)系是在與、或、非3種基本邏輯運(yùn)算基礎(chǔ)上的變換。
? 異或邏輯的布爾代數(shù)表達(dá)式:F=A·B+A·B=A⊕B,⊕為異或運(yùn)算符
“異或”運(yùn)算是兩個(gè)變量的運(yùn)算
運(yùn)算規(guī)則:相同則為0,相異則為1
異或門
對(duì)輸入的兩個(gè)邏輯變量執(zhí)行“異或”運(yùn)算的門電路
異或門是兩輸入單輸出的門電路


“同或”邏輯
“同或”運(yùn)算是在“異或”運(yùn)算的基礎(chǔ)上再進(jìn)行“非”運(yùn)算的結(jié)果。
同或運(yùn)算的布爾表達(dá)式:F=A⊕B
“同或”運(yùn)算是兩個(gè)變量的運(yùn)算
運(yùn)算規(guī)則:
相同則為1,相異則為0
同或門
對(duì)輸入的兩個(gè)邏輯變量執(zhí)行“同或”運(yùn)算的門電路


本章小結(jié)
學(xué)習(xí)要求:
? 微型計(jì)算機(jī)系統(tǒng)組成
? 計(jì)算機(jī)中的數(shù)制及其轉(zhuǎn)換
? 補(bǔ)碼的概念和運(yùn)算
? 馮·諾依曼結(jié)構(gòu)及基本原理
? 基本邏輯門及其邏輯關(guān)系
教學(xué)要求
? 希望理解并能夠回答以下問(wèn)題:
? 微處理器、微型計(jì)算機(jī)、微型計(jì)算機(jī)系統(tǒng)三者間有什么不同?
? 計(jì)算機(jī)為什么要采用二進(jìn)制?除二進(jìn)制外為什么還有其它計(jì)數(shù)制?
? 什么是無(wú)符號(hào)數(shù)?什么是有符號(hào)數(shù)?
? 為什么要引入補(bǔ)碼?
? 馮·諾依曼計(jì)算機(jī)具有什么結(jié)構(gòu)特點(diǎn)和基本工作原理?
? 利用馮·諾依曼計(jì)算機(jī)執(zhí)行一條指令需要的基本過(guò)程?
? 什么是邏輯?真值表的含義?
程序計(jì)數(shù)器PC的作用
希望掌握并能夠回答以下問(wèn)題:
? 不同計(jì)數(shù)制之間如何轉(zhuǎn)換?
? 原碼、反碼和補(bǔ)碼之間的關(guān)系?
? 二進(jìn)制運(yùn)算
? 如何判斷運(yùn)算結(jié)果是否溢出?
? 基本邏輯門電路的符號(hào)及輸入與輸出的關(guān)系(邏輯真值表)
注意點(diǎn):
? 內(nèi)存的組織模式
? 單元,單元內(nèi)容,單元地址
? 邏輯門及邏輯關(guān)系
難點(diǎn)及要點(diǎn):
? 補(bǔ)碼的概念及其運(yùn)算
? 基本邏輯門及其邏輯關(guān)系

