章7-低級程序設計語言 - 副本_第1頁
章7-低級程序設計語言 - 副本_第2頁
章7-低級程序設計語言 - 副本_第3頁
章7-低級程序設計語言 - 副本_第4頁
章7-低級程序設計語言 - 副本_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、計算機導論第第7 7章章 低級編程語言低級編程語言2提綱 機器語言 Pep/7虛擬機的機器指令 基本機器指令的功能 立即尋址和直接尋址 Pep/7的演示程序 匯編語言與Pep/7的匯編指令簡介3計算機計算機 是可編程的電子設備,可以存儲存儲,檢索和處理數據。指令指令 定義了計算機對數據可以進行什么樣的操作。存儲程序的概念存儲程序的概念 數據和處理數據的指令在表示上一致的(都使用二進制編碼),可被存在同一個地方。計算機的數據處理4機器語言機器語言機器語言 由二進制編碼的指令組成,由特定的計算機硬件直接執(zhí)行。 比喻: 一把“鑰匙”(指令)開一把“鎖”(計算機)。為什么我們學習機器語言?為什么我們學

2、習機器語言?1. 理解計算機如何工作。2. 欣賞今天我們與計算機的交互是如此的簡單。5機器語言的特性:機器語言的特性:1. 每一種處理器有它特定的一組機器指令。2. 處理器和它的指令是完全一體化的。3. 每一條機器指令只能執(zhí)行非常低級的計算任務。機器語言6一段機器語言代碼(用16進制表示):D9 01 01 09 01 00 11 01 10 18 00 01 11 01 10 E1 01 11 00在這里,我們用2位十六進制數字來表示一個字節(jié);字節(jié)之間空格在計算機內部是不存在的,寫在這里是為了讀程序清楚起見。機器語言7Pep/7虛擬機Pep/7是一臺是一臺虛擬計算機虛擬計算機 用軟件的方式來

3、模擬計算機的計算部件的工作;用來幫助教師向學生解釋機器語言是如何工作的。 Pep/7包含7個寄存器和4個狀態(tài)位。 8Pep/7: 16位的數據總線,即16位字長:一個CPU的時鐘周期里從內存讀入CPU或者從CPU寫入內存的數據量是32比特。 12位的地址總線:可編址 212 = 4096字節(jié)。 共有32條指令:除停機指令是1字節(jié)外,其它指令都是 3 字節(jié)長。Pep/7虛擬機9Pep/7 CPU的寄存器(的寄存器(register): 程序計數器(程序計數器(Program Counter, PC):):存儲下一條要執(zhí)行的指令的內存地址。指令寄存器指令寄存器(Instruction Regist

4、er, IR):):存儲當前被執(zhí)行的指令。寄存器寄存器A(累加器):(累加器):存儲加法運算的結果。狀態(tài)位:狀態(tài)位:存儲于狀態(tài)寄存器。 位Z 置 1,如果寄存器A的值為0;否則位Z置 0。位N 置 1,如果寄存器A的值為負數;否則位N置 0。Pep/7虛擬機10Pep/7的體系結構狀態(tài)位寄存器A程序計數器(PC)指令寄存器(IR)11Pep/7的指令格式(a)一個指令由兩部分組成:指令說明符,操作數說明符 (b)指令說明符指令說明符操作數說明符尋址模式說明符 操作碼 寄存器說明符 12指令說明符的組成成分:指令說明符的組成成分:操作碼:操作碼:定義了一條指令。寄存器說明符:寄存器說明符:指定了

5、這條指令使用的寄存器。這里我們只用到了A register(累加器)。尋址模式說明符:尋址模式說明符:指定了操作數是一個數(稱作立即尋址)還是一個地址(稱作直接尋址)。Pep/7的指令格式13兩種尋址模式:兩種尋址模式:Pep/7的指令格式(a) 立即尋址模式:操作數說明立即尋址模式:操作數說明符是操作數本身符是操作數本身(b) 直接尋址模式:操作數說直接尋址模式:操作數說明符是操作數的地址明符是操作數的地址指令說明符 操作數說明符 指令說明符 操作數說明符 下圖的12個紅色單元,是因為pep/7的地址總線是12 bits,高位的4 bits沒有用到。14Pep/7基本指令 (操作碼)15指令

6、:指令:停機停機 操作碼:00000。程序停止執(zhí)行。它是1字節(jié)的指令(不含操作數說明符)。Pep/7基本指令基本指令16指令:指令:把操作數載入寄存器把操作數載入寄存器A 操作碼:00001。將操作數說明符指定的2個字節(jié)存入寄存器A中。(a) 立即尋址:立即尋址:操作數說明符就是操作數本身,把它載入寄存器A。 (b) 直接尋址直接尋址: 操作數說明符指定的是操作數所在的內存地址,把它指向的2字節(jié)的內存單元的內容載入寄存器A。指令說明符指令說明符操作數說明符操作數說明符Pep/7基本指令17指令:指令:將寄存器將寄存器A的內容存入操作數中的內容存入操作數中 操作碼:00010。將寄存器A存入操作

7、數說明符指定的內存空間中。只支持直接尋址只支持直接尋址: 操作數說明符指定的是操作數所在的內存地址,把寄存器A的內容存入操作數說明符指向的2字節(jié)的內存單元。指令說明符操作數說明符Pep/7基本指令18指令:指令:把操作數加到寄存器把操作數加到寄存器A中中 操作碼:00011。將操作數說明符指定的操作數加入寄存器A中。 與指令“把操作數載入寄存器A”類似,除了這里是把操作數加到寄存器中。 請自己定義。Pep/7基本指令19指令:從寄存器指令:從寄存器A中減去操作數中減去操作數 操作碼:00011。從寄存器A中減去操作數說明符指定的操作數。 請自己定義。 Pep/7基本指令20指令:把字符輸入操作

8、數指令:把字符輸入操作數 操作碼:11011。 從輸入設備讀入一個ASCII字符到操作數說明符指定的內存地址中。指令說明符操作數說明符只支持直接尋址模式只支持直接尋址模式Pep/7基本指令21指令:從操作數輸出字符指令:從操作數輸出字符 操作碼:11100。 將操作數說明符指定的操作數(一個ASCII字符的碼值)發(fā)送到輸出設備。指令說明符指令說明符操作數說明符操作數說明符(a) 立即尋址立即尋址 (b) 直接尋址直接尋址Pep/7基本指令22你能將上述指令用十六進制寫出嗎?23 Pep/7程序演示1. 從鍵盤讀入字符A (ASCII碼值0 x41)2. 將字符A存入變量i中3. 將 i 的值自

9、增1 4. 將i值所對應的字符(即B)輸出到屏幕上5. 停機24Pep/7程序運行步驟:1. 打開或新建一個程序 (zz 是程序的結束符)2. 設置跟蹤選項 Pep7 - clear RAM memory 將內存單元全部設置為0: 設置 Pep7 - Trace Options跟蹤內存單元的內容的變化3. 允許鍵盤輸入: Pep7-exection input-interactive input from keyboard 4. 將程序裝載到內存: Pep7-load5. 執(zhí)行程序:Pep7-execute Pep/7程序演示25我們假設: 程序指令存儲在地址范圍為0 x000000FF的內存

10、空間 鍵盤輸入的字符存儲在地址范圍為0 x0100010F的內存空間 (A 存儲在0 x0101) 變量存儲在0 x01100FFF (變量i,2字節(jié),存儲在0 x01100111) Pep/7程序演示26內存存儲示意圖:.0041. 內容 地址0 x00010 x00020 x01000 x01010 x01100 x0111程序存儲區(qū)A i Pep/7程序演示27Pep/7 的存儲方式是大端字節(jié)的。的存儲方式是大端字節(jié)的。大端字節(jié)(Big Endian):數據的高字節(jié)存在低地址上例: 0 xABCD 地址 字節(jié)n ABn+1 CD小端字節(jié)(Little Endian):數據的高字節(jié)存在高地

11、址上例: 0 xABCD 地址 字節(jié)n CDn+1 AB Pep/7程序演示28 Pep/7程序演示程序代碼:D9 01 01 09 01 00 11 01 10 18 00 01 11 01 10 E1 01 11 00 zz291. 從鍵盤讀入字符A (ASCII碼值0 x41)存到內存單元中(設在地址0 x0101上)In Hex:D9 (11011 0 01 in Bin, 把字符輸入操作數,直接尋址)01 01 (地址為0 x0101) Pep/7程序演示302. 將字符A存入變量i中(設起始地址為0 x0110)In Hex: 09 (00001 0 01 in Bin, 把操作數

12、載入寄存器A,直接尋址)01 00 (A在地址0 x0100上) In Hex:11 (00010 0 01 in Bin, 把寄存器A的內容存儲到操作數中)01 10 (i的起始地址是0 x0110) Pep/7程序演示313. 將 i 的值自增1In Hex:18 (00011 0 00 in Bin, 把操作數加到寄存器中,立即尋址)00 01 (數字1)In Hex:11 (00010 0 01 in Bin, 將寄存器A存到操作數中,直接尋址)01 10 (i的起始地址是0 x0110) Pep/7程序演示324. 將i值所對應的字符(即B)輸出到屏幕上In Hex:E1 (1110

13、0 0 01 in Bin, 從操作數輸出字符,直接尋址)01 11 (該字符存儲在地址0 x111上)注意:Pep/7是大端字節(jié)的存儲方式,即0 x0000存儲在地址0 x0110上,0 x0042存儲在地址0 x0111上。 Pep/7程序演示335. 停機In Hex:00( 00000 0 00 in Bin) Pep/7程序演示34請自己寫出每次執(zhí)行一條指令時,IR, PC和寄存器A里的內容。執(zhí)行第1條指令D9 01 01時,IR=D9 01 01;PC=00 03;寄存器A=00 00; 執(zhí)行第2條指令09 01 00時,IR=09 01 00;PC=00 06;寄存器A=0041;. Pep/7程序演示35

溫馨提示

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

評論

0/150

提交評論