




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第5章,指令、指令系統(tǒng)和匯編語(yǔ)言程序設(shè)計(jì),本章主要內(nèi)容,指令格式與尋址方式概述 匯編語(yǔ)言程序設(shè)計(jì),計(jì)算機(jī)系統(tǒng)由硬件和軟件兩部分組成。硬件指由中央處理機(jī)、存儲(chǔ)器以及外部設(shè)備等組成的實(shí)際裝置。軟件是為便于用戶(hù)使用計(jì)算機(jī)而編寫(xiě)的各種程序,是由一系列機(jī)器指令組成的。 指令是用戶(hù)使用計(jì)算機(jī)和計(jì)算機(jī)運(yùn)行的最小的功能單位,一臺(tái)計(jì)算機(jī)支持(或稱(chēng)使用)的全部指令構(gòu)成該計(jì)算機(jī)的指令系統(tǒng),它對(duì)計(jì)算機(jī)本身的硬件結(jié)構(gòu)的復(fù)雜程度和運(yùn)行性能,對(duì)用戶(hù)完成程序設(shè)計(jì)的難易程度和工作效率,有非常重要的影響,必須對(duì)設(shè)計(jì)指令系統(tǒng)的工作給以足夠的重視,慎重確定。,指令與指令系統(tǒng)概述,對(duì)指令系統(tǒng)的要求,完備性: 指令齊全,編程方便 高效性
2、:占內(nèi)存少,運(yùn)行省時(shí) 規(guī)整性:指令與運(yùn)算規(guī)則統(tǒng)一 兼容性:新舊機(jī)指令軟件兼容,當(dāng)前的計(jì)算機(jī)指令系統(tǒng),從其構(gòu)成的復(fù)雜和完備程度,或者說(shuō)設(shè)計(jì)中追求的不同的目標(biāo)區(qū)分,可分為 CISC 和RISC 兩類(lèi): RISC(Reduced Instruction Set Computer),通常稱(chēng)為精簡(jiǎn)指令系統(tǒng)的計(jì)算機(jī),提供數(shù)目較少、格式與功能簡(jiǎn)單、運(yùn)行高效的指令,追求的是計(jì)算機(jī)控制器實(shí)現(xiàn)簡(jiǎn)單,運(yùn)行高速,更容易在單塊超大規(guī)模集成電路的芯片內(nèi)制做出來(lái)。 CISC (Complex Instruction Set Computer),通常稱(chēng)為復(fù)雜指令系統(tǒng)的計(jì)算機(jī),是相對(duì)于 RISC 一詞而提出來(lái)的一種說(shuō)法。其特點(diǎn)
3、是:指令條數(shù)多,格式多樣,尋址方式復(fù)雜,每條指令的功能強(qiáng),優(yōu)點(diǎn)是匯編程序設(shè)計(jì)容易些,但計(jì)算機(jī)控制器的實(shí)現(xiàn)困難多,很多指令被使用的機(jī)會(huì)并不多。,指令格式與尋址方式,指令 : 功能 定義 用法,指令格式:,操作碼 操作數(shù)地址,固定長(zhǎng)度 可變長(zhǎng)度 交叉安排,無(wú)地址 一地址 二地址 多地址,2. 尋址方式,外設(shè)尋址,入 / 出端口地址方式,統(tǒng)一映象方式,主存尋址,寄存器尋址,直接尋址,變址尋址,寄存器間址,間接尋址,相對(duì)尋址,基地址尋址,立即數(shù)尋址,堆棧尋址,1. 指令與指令格式,指令:功能、定義、用法,指令格式: 操作碼 操作數(shù)地址,固定長(zhǎng)度(IBM/ PC),擴(kuò)展長(zhǎng)度(PDP-11),交叉安排(N
4、OVA),無(wú)地址 一地址 二地址 多地址,三種方案,按操作數(shù) 個(gè)數(shù)劃分,教學(xué)計(jì)算機(jī)的操作碼: TEC-2000 16位機(jī)采用 8 位固定長(zhǎng)度 TEC-2000 8 位機(jī)采用 逐段擴(kuò)展長(zhǎng)度,指令格式,尋址方式(又稱(chēng)編址方式)指的是確定本條指令的數(shù)據(jù)地址及下一條要執(zhí)行的指令地址的方法。 不同的計(jì)算機(jī)系統(tǒng),使用數(shù)目和功能不同的尋址方式,其實(shí)現(xiàn)的復(fù)雜程度和運(yùn)行性能各不相同。有的計(jì)算機(jī)尋址方式較少,而有些計(jì)算機(jī)采用多種尋址方式。通常需要在指令中為每一個(gè)操作數(shù)專(zhuān)設(shè)一個(gè)地址字段,用來(lái)表示數(shù)據(jù)的來(lái)源或去向的地址。在指令中給出的操作數(shù)(或指令)的地址被稱(chēng)為形式地址,使用形式地址信息并按一定的規(guī)則計(jì)算出來(lái)的一個(gè)數(shù)
5、值才是數(shù)據(jù)(或指令)的實(shí)際地址。在指令的操作數(shù)地址字段,可能要指出: 運(yùn)算器中的累加器的編號(hào)或?qū)S眉拇嫫髅Q(chēng)(編號(hào)) 輸入/輸出指令中用到的 I/O 設(shè)備的入出端口地址 內(nèi)存儲(chǔ)器的一個(gè)存儲(chǔ)單元(或一 I/O設(shè)備 )的地址 有多種 基本尋址方式 和某些 符合尋址方式 ,簡(jiǎn)介如下:,尋址方式,計(jì)算機(jī)的CPU中一般設(shè)置有一定數(shù)量的通用寄存器,用于存放操作數(shù)、操作數(shù)地址或中間結(jié)果。假如指令地址碼字段給出某一通用寄存器的編號(hào)(地址),且所需的操作數(shù)就在這一寄存器中,這就是寄存器尋址方式;若該寄存器中存放的是操作數(shù)在內(nèi)存儲(chǔ)器中所在單元的地址,這就是寄存器間接尋址方式。可通過(guò)指令的操作碼或另設(shè)一個(gè)字段,來(lái)區(qū)
6、分這兩種不同的尋址方式。,1、寄存器尋址、寄存器間接尋址,例:RegNo.=5, 使用 5# 累加器, 此時(shí) 5# 累加器中的內(nèi)容為 7, 可記為 (R5)=7,,對(duì)寄存器尋址方式,操作數(shù)就是這里的數(shù)值 7,對(duì)寄存器間接尋址,從內(nèi)存 7# 單元讀出來(lái)的數(shù)才是操作數(shù),2、立即數(shù)尋址,所需的一個(gè)操作數(shù)在指令的地址字段部分直接給出。,則 Num 即為操作數(shù)的值。,適用于操作數(shù)固定的情況,提高了指令的執(zhí)行速度, 當(dāng)該立即數(shù)的值限定為較小值(占用位數(shù)少)時(shí),可在第一個(gè)指令字中直接給出,否則可在第二個(gè)指令字中給出。,在指令的地址碼字段直接給出所需的操作數(shù)(或指令) 在存儲(chǔ)器中的地址。,則 Addr 為操作
7、數(shù)在存儲(chǔ)器中的地址。 或轉(zhuǎn)移指令等用到的指令地址。,3、直接尋址,例:Addr = 5718H ,這里的 H 表示 5718 是 16 進(jìn)制的值, 可能用作下一條指令的地址; 也可能用作操作數(shù)的地址,若 5718H = 3,即內(nèi)存儲(chǔ)器 5718 單元中的內(nèi)容為 3, 則操作數(shù)就是這里的 3 。,內(nèi)存儲(chǔ)器,操作數(shù),操作數(shù)的地址由指定的變址寄存器(由Reg指定)的內(nèi)容和指令中的地址碼(Disp)相加得到。,4、變址尋址,通用寄存器,加法器,操作數(shù),存儲(chǔ)器,例:Disp=18H,Reg=5,(R5)=5700H 則操作數(shù)地址 = 5718H,便于對(duì)數(shù)組元素進(jìn)行處理, 是計(jì)算機(jī)中常用的一種尋址方式。,
8、操作數(shù)(或指令)的地址由程序計(jì)數(shù)器 PC 的內(nèi)容(即當(dāng)前執(zhí)行指令的地址)和指令的地址碼相加得到。,5、相對(duì)尋址,例:Disp = 48H(PC) = 5600H 則實(shí)際地址 = 5648H,1)主要用于轉(zhuǎn)移指令,對(duì)浮動(dòng)程序很有用。 2)位移量可正可負(fù),通常用補(bǔ)碼表示。,指令的地址碼字段給出的內(nèi)容既不是操作數(shù),也不是操作數(shù)的地址,而是操作數(shù)(或指令)地址的地址,這被稱(chēng)為間接尋址方式,多一次讀內(nèi)存儲(chǔ)器的操作。,6、間接尋址,存儲(chǔ)器,操作數(shù),Addr1,指令中的 Addr 可以用其他尋址方式給出,例如變址尋址,這就成為變址尋址與間接尋址的復(fù)合尋址方式。,在計(jì)算機(jī)中設(shè)置一個(gè)專(zhuān)用的基址寄存器,操作數(shù)(或
9、指令)的地址通過(guò)基址寄存器的內(nèi)容和指令中的地址碼相加得到。,7、基址尋址,基址寄存器,加法器,存儲(chǔ)器,操作數(shù),例:Disp= 18H,BS= 5700H 則操作數(shù)地址=5718H,主要用于為程序或數(shù)據(jù)分配存儲(chǔ)區(qū),對(duì)多道程序或浮動(dòng)程序很有用,解決了程序在存儲(chǔ)器中的定位和擴(kuò)大尋址空間等問(wèn)題。,堆棧是內(nèi)存儲(chǔ)器中一塊按 “后進(jìn)先出” 原則進(jìn)行讀寫(xiě)的存儲(chǔ)區(qū),并通過(guò)一個(gè)專(zhuān)用的寄存器(稱(chēng)為堆棧指針SP)給出堆棧的棧頂(和次棧頂)地址完成數(shù)據(jù)的讀寫(xiě)操作,故不必在指令中用操作數(shù)地址字段給堆棧地址。通常在讀寫(xiě)操作的前后伴隨有計(jì)算機(jī)自動(dòng)(不是用戶(hù)通過(guò)指令)修改 SP 內(nèi)容的動(dòng)作,以確保按正確的 “后進(jìn)先出” 原則讀
10、寫(xiě)堆棧區(qū)。 例如:(SP)- 1 SP和 AR,即SP的內(nèi)容減 1 存回 SP,并送內(nèi)存地址寄存器,接下來(lái)才可以把數(shù)據(jù)寫(xiě)到堆棧中。完成一次讀堆棧操作后,要接著執(zhí)行(SP)+ 1 SP 的一次自動(dòng)修改 SP 內(nèi)容的操作。,8、堆棧尋址,需要注意的是,指令長(zhǎng)度可能是一個(gè)字,也可能是兩個(gè)字或多個(gè)字,要看操作數(shù)地址字段的位數(shù)要求,由具體的情況決定。,單字指令僅用一個(gè)指令字。 雙字指令要用兩個(gè)指令字, 此時(shí)第二個(gè)指令字的內(nèi)容可能是立即數(shù)、一個(gè)直接地址或一個(gè)變址位移量。,TEC-2000 教學(xué)機(jī)的指令格式,操 作 碼,目的寄存器,源寄存器,I/O 端 口 地 址,相對(duì)轉(zhuǎn)移指令的偏移量,直接數(shù) / 內(nèi)存地址
11、 / 指令中變址偏移量,8位 4位 4位,第一個(gè)指令字分為三個(gè)主要部分。 最高 8 位是操作碼。從這個(gè)意義上講, 教學(xué)機(jī)的基本指令是固定長(zhǎng)度的操作碼結(jié)構(gòu), 最多支持 256 條基本指令。 最低的 8 位有多種用法:給出 1 或 2 個(gè)寄存器的編號(hào),或入/出端口的地址,或用于給出相對(duì)轉(zhuǎn)移指令的偏移量。,操 作 碼,目的寄存器,源寄存器,I/O 端 口 地 址,相對(duì)轉(zhuǎn)移指令的偏移量,直接數(shù) / 內(nèi)存地址 / 指令中變址偏移量,8位 4位 4位,TEC-2000 教學(xué)機(jī)的指令格式,TEC-2000 16位教學(xué)計(jì)算機(jī)指令舉例,00 ADD DR, SR 44 JRC adr 84 PSHF 01 SU
12、B DR, SR 45 JRNC adr 8C POPF 02 AND DR, SR 46 JRZ adr 8F RET 03 CMP DR, SR 47 JRNZ adr 04 XOR DR, SR 41 JR adr 05 TEST DR, SR 80 JMPA adr 06 OR DR, SR CE CALA adr 07 MVRR DR, SR 82 IN i/o port 08 DEC DR 86 OUT i/o port 09 INC DR 0A SHL DR 0B SHR DR 88 MVRD DR, data 85 PUSH DR 81 LORR DR, SR 87 POP D
13、R 83 STRR DR, SR,教學(xué)機(jī)基本指令,數(shù)據(jù)移動(dòng)指令 MVRR、MVRD、LDRR、STRR、PUSH、POP、PSHF、POPF、IN、OUT 算術(shù)邏輯指令 ADD、SUB、AND、XOR、TEST、CMP、OR、DEC、INC、SHL、SHR 控制轉(zhuǎn)移指令 CALA、RET、JMPA、JR、JRC、JRNC、JRZ、JRNZ,TEC-2000 16位機(jī)基本指令系統(tǒng),指令格式 匯編語(yǔ)句 操作數(shù)個(gè)數(shù) CZVS 指令分組 功能說(shuō)明 00000000 DRSR ADD DR,SR 2 * A DRDR+SR 00000001 DRSR SUB DR,SR 2 * A DRDR-SR 00
14、000010 DRSR AND DR,SR 2 * A DRDR and SR 00000011 DRSR CMP DR,SR 2 * A DR-SR 00000100 DRSR XOR DR,SR 2 * * A DRDR xor SR 00000101 DRSR TEST DR,SR 2 * * A DR and SR 00000110 DRSR OR DR,SR 2 * * A DRDR or SR 00000111 DRSR MVRR DR, SR 2 A DRSR 00001000 DR0000 DEC DR 1 * A DRDR-1 00001001 DR0000 INC DR 1
15、 * A DRDR+1 00001010 DR0000 SHL DR 1 * A DR,CDR*2 00001011 DR0000 SHR DR 1 * A DR,CDR /2 01000001 OFFSET JR ADR 1 A 無(wú)條件跳轉(zhuǎn) 01000100 OFFSET JRC ADR 1 A C=1 時(shí)跳轉(zhuǎn) 01000101 OFFSET JRNC ADR 1 A C=0 時(shí)跳轉(zhuǎn) 01000110 OFFSET JRZ ADR 1 A Z=1 時(shí)跳轉(zhuǎn) 01000111 OFFSET JRNZ ADR 1 A Z=0 時(shí)跳轉(zhuǎn),TEC-2000 16位機(jī)基本指令系統(tǒng),指令格式 匯編語(yǔ)句 操作
16、數(shù)個(gè)數(shù) CZVS 指令分組 功能說(shuō)明 10000000 0000000 JMPA ADR 1 B 無(wú)條件跳到ADR ADR(16位) 10000001 DRSR LDRR DR,SR 2 B DRSR 10000010 I/O PORT IN I/O PORT 1 B R0I/O PORT 10000011 DRSR STRR DR,SR 2 B DRSR 10000100 00000000 PSHF 0 B FLAG 入棧 10000101 0000SR PUSH SR 1 B SR 入棧 10000110 I/O PORT OUT I/O PORT 1 B I/O PORTR0 10000
17、111 DR POP DR 1 B 出棧到 DR 10001000 DR0000 MVRD DR, DATA 2 B DRDATA DATA(16位) 10001100 00000000 POPF 1 * * B FLAG出棧 10001111 00000000 RET 1 B 子程序返回 11001110 00000000 CALA ADR 1 D 調(diào)用子程序 ADR(16位),教學(xué)機(jī)尋址方式,立即數(shù)尋址 MVRD DR, DATA 寄存器尋址 MVRR R1,R2 寄存器間接尋址 LDRR DR,SR 直接尋址 CALA ADR 相對(duì)尋址 JRC ADR,本章主要內(nèi)容,指令格式與尋址方式概
18、述 匯編語(yǔ)言程序設(shè)計(jì),匯編語(yǔ)言程序設(shè)計(jì),機(jī)器語(yǔ)言是計(jì)算機(jī)硬件能夠直接識(shí)別和運(yùn)行的指令的集合,是二進(jìn)制碼組成的指令,對(duì)程序設(shè)計(jì)人員來(lái)說(shuō)很難以接受,直接用機(jī)器指令設(shè)計(jì)程序?qū)嵲谑翘щy了。 匯編語(yǔ)言大體上是對(duì)計(jì)算機(jī)機(jī)器語(yǔ)言的符號(hào)化處理的結(jié)果,再增加一些為方便程序設(shè)計(jì)而實(shí)現(xiàn)的擴(kuò)展功能。匯編語(yǔ)言至少有2大優(yōu)點(diǎn)。首先實(shí)現(xiàn)用英文單詞或其縮寫(xiě)形式替代二進(jìn)制的指令代碼,更容易記憶和理解;其次可以選用英文單詞來(lái)表示程序中用到的數(shù)據(jù)(常量和變量),并且避免程序設(shè)計(jì)人員親自為這些數(shù)據(jù)分配存儲(chǔ)單元,而是留給匯編程序自己去安排,這樣的語(yǔ)言就達(dá)到了實(shí)用的最基本的標(biāo)準(zhǔn)。如果在此基礎(chǔ)上,再在支持程序的不同結(jié)構(gòu)特性(如循環(huán)和重復(fù)
19、執(zhí)行等結(jié)構(gòu)),子程序所用啞變?cè)鎿Q為真實(shí)參數(shù)等方面提供必要的支持,使用這個(gè)語(yǔ)言設(shè)計(jì)程序就更為方便了。匯編語(yǔ)言程序經(jīng)匯編器程序翻譯為機(jī)器語(yǔ)言程序后方可運(yùn)行。,高級(jí)語(yǔ)言又稱(chēng)算法語(yǔ)言,它的實(shí)現(xiàn)思路,不再是過(guò)分地“靠攏”計(jì)算機(jī)硬件的指令系統(tǒng),而是著重面向解決實(shí)際問(wèn)題所用的算法,更多的是是為方便程序設(shè)計(jì)人員寫(xiě)出自己解決問(wèn)題的處理方案和解題過(guò)程的程序。目前常用的高級(jí)語(yǔ)言有BASIC、C、C+、,PASCAL、JAVA、PROLOG、VHDL等幾百種。用這些語(yǔ)言設(shè)計(jì)出來(lái)的程序,通常需要經(jīng)過(guò)一個(gè)叫做編譯程序的軟件先編譯成機(jī)器語(yǔ)言程序,或者首先編譯成匯編程序后,再經(jīng)過(guò)匯編操作后得到機(jī)器語(yǔ)言程序,才能在計(jì)算機(jī)的硬
20、件系統(tǒng)上予以執(zhí)行;也可以由一個(gè)叫做解釋執(zhí)行程序的軟件,逐條取來(lái)相應(yīng)高級(jí)語(yǔ)言程序的每個(gè)語(yǔ)句并直接控制其完成執(zhí)行過(guò)程,而不是把整個(gè)程序編譯為機(jī)器語(yǔ)言程序之后再一起交給硬件系統(tǒng)加以執(zhí)行。,教學(xué)計(jì)算機(jī)中的匯編程序的例子,例1:設(shè)計(jì)一個(gè)程序,在屏幕上輸出顯示一個(gè)字符6。 A 2000 ;地址從16進(jìn)制的2000(內(nèi)存RAM區(qū)的起始地址)開(kāi)始 2000: MVRD R0,0036 ;把字符6的ASCII碼送入R0 2002: OUT 80 ;在屏幕上輸出顯示字符6,80為串行接口地址 2003: RET ;每個(gè)用戶(hù)程序都必須用RET指令結(jié)束 2004: (按回車(chē)鍵即結(jié)束源程序的輸入過(guò)程),教學(xué)計(jì)算機(jī)中的匯
21、編程序的例子,例2:計(jì)算1到10的累加和。 A 2060 MVRD R1,0000 ;置累加和的初值為0 MVRD R2,000A ;最大的加數(shù) SUB R3,R3 ;預(yù)置參加累加的數(shù)為0 (2065) INC R3 ;得到下一個(gè)參加累加的數(shù) ADD R1, R3 ;累加計(jì)算 CMP R3, R2 ;判斷是否累加完 JRNZ 2065 ;未完,開(kāi)始下一輪累加 RET 運(yùn)行過(guò)后,可以用R命令看R1中的累加結(jié)果。,教學(xué)計(jì)算機(jī)中的匯編程序的例子,例3:設(shè)計(jì)一個(gè)程序,用次數(shù)控制在終端屏幕上輸出0到9十個(gè)數(shù)字符。 A 2020 MVRD R2,000A ;送入輸出字符的個(gè)數(shù) MVRD R0,0030 ;
22、0字符的ASCII碼 (2024) OUT 80 ;輸出保存在R0低位字節(jié)的字符 DEC R2 ;輸出字符個(gè)數(shù)減1 JRZ 202E ;判全部字符輸出完否,已完,則轉(zhuǎn)移到程序結(jié)束處 PUSH R0 ;未完,保存R0的值到堆棧中 (2028) IN 81 ;查詢(xún)接口狀態(tài),判字符的串行輸出過(guò)程結(jié)束否 SHR R0 ; JRNC 2028 ;未完成,則循環(huán)等待 POP R0 ;已完成,準(zhǔn)備繼續(xù)輸出下一字符,從堆棧恢復(fù) ; R0 的值 INC R0 ;得到下一個(gè)要輸出的字符 JR 2024 ;轉(zhuǎn)去輸出字符 (202E) RET,教學(xué)計(jì)算機(jī)中的匯編程序的例子,例4:從鍵盤(pán)上連續(xù)鍵入多個(gè)屬于0到9的數(shù)字符
23、并在屏幕上顯示,遇非數(shù)字符結(jié)束程序。從地址2040開(kāi)始輸入下列程序: A 2040 MVRD R2,0030 ;用于判數(shù)字符的下界值 MVRD R3,0039 ;用于判數(shù)字符的上界值 (2044) IN 81 ;判鍵盤(pán)上是否按了一個(gè)鍵 SHR R0 ;即串行口是否有了輸入的字符 SHR R0 JRNC 2044 ;尚沒(méi)有輸入則循環(huán)測(cè)試 IN 80 ;把輸入字符讀到R0低位字節(jié) MVRD R1, 00FF AND R0, R1 ;將R0的高位字節(jié)清0 CMP R0, R2 ;判輸入的字符 字符0否 JRNC 2053 ;是,則轉(zhuǎn)到程序結(jié)束處 CMP R3, R0 ;判輸入的字符 字符9否 JRN
24、C 2053 ;是,則轉(zhuǎn)到程序結(jié)束處 OUT 80 ;輸出剛輸入的數(shù)字符 JMPA 2044 ;轉(zhuǎn)去程序前邊2044處等待輸入下一個(gè)字符 (2053) RET,教學(xué)計(jì)算機(jī)中的匯編程序的例子,例5:設(shè)計(jì)一個(gè)有讀寫(xiě)內(nèi)存和子程序調(diào)用指令的程序,功能是讀出指定內(nèi)存中的大寫(xiě)字母字符,將其顯示到屏幕上,轉(zhuǎn)換為小寫(xiě)字母后再寫(xiě)回存儲(chǔ)器的原存儲(chǔ)單元。 E 20F0 (送入將被顯示的6個(gè)字符AF到內(nèi)存20F0開(kāi)始的存儲(chǔ)區(qū)域中) 41 42 43 44 45 46 A 2080 MVRD R3, 0006 ;指定被讀數(shù)據(jù)的個(gè)數(shù) MVRD R2, 20F0 ;指定被讀、寫(xiě)數(shù)據(jù)內(nèi)存區(qū)首地址 (2084) LDRR R0
25、, R2 ;讀內(nèi)存中的一個(gè)字符到R0寄存器 CALA 2100 ;調(diào)用子程序,入口地址為2100, ;完成顯示、字符轉(zhuǎn)換和寫(xiě)回內(nèi)存的功能 DEC R3 ;檢查輸出的字符個(gè)數(shù) JRZ 208B ;完成輸出則結(jié)束程序的執(zhí)行過(guò)程 INC R2 ;未完成,修改內(nèi)存地址 JR 2084 ;轉(zhuǎn)移到程序的2084處,循環(huán)執(zhí)行規(guī)定的處理 (208B) RET A 2100 ;輸入用到的子程序到內(nèi)存2100開(kāi)始的存儲(chǔ)區(qū) OUT 80 ;輸出保存在R0寄存器中的字符 MVRD R1, 0020 ;轉(zhuǎn)換保存在R0中的大寫(xiě)字母為小寫(xiě)字母 ADD R0, R1 STRR R2, R0 ;寫(xiě)R0中的字符到內(nèi)存,地址同LD
26、RR所用的地址 (2105) IN 81 ;測(cè)試串行接口是否完成輸出過(guò)程 SHR R0 JRNC 2105 ;未完成輸出過(guò)程則循環(huán)測(cè)試 RET ;結(jié)束子程序執(zhí)行過(guò)程,返回主程序 運(yùn)行過(guò)程中,可以直接看到屏幕上顯示的內(nèi)容,運(yùn)行過(guò)后,再用D 20F0命令看內(nèi)存的20F0區(qū)域中保存的運(yùn)行結(jié)果, 6個(gè)大寫(xiě)的英文字母已經(jīng)被修改為小寫(xiě)字母: 0061 0062 0063 0064 0065 0066,教學(xué)計(jì)算機(jī)中的偽指令,寫(xiě)在程序中的、指示匯編程序如何對(duì)該程序執(zhí)行匯編操作的命令叫做偽指令。例如: ORG : ORG exp 指定程序執(zhí)行的開(kāi)始地址 END : 指定程序執(zhí)行的結(jié)束地址 EQU : var E
27、QU exp 定義變量的值 var = exp DW : adr DW exp 以為首地址在存儲(chǔ)器中 寫(xiě)入指定的值 BLK : BLK n 保留 n 個(gè)存儲(chǔ)單元,P152 題11: 用教學(xué)機(jī)的指令系統(tǒng)設(shè)計(jì)程序,實(shí)現(xiàn)從鍵盤(pán)讀人四位無(wú)符號(hào)的整數(shù),到計(jì)算機(jī)內(nèi)轉(zhuǎn)換成二進(jìn)制數(shù)存于R0,并輸出到屏幕顯示。,MVRD R2, 0000 ; 存放結(jié)果(累加和) CALA READ-IN ;讀鍵盤(pán)上千位值,返回在R0 MVRD R3, 03E8 ;1000D 對(duì)應(yīng) 03E8 H ADD1: ADD R2, R3 ;將千位值加在結(jié)果上 DEC R0 ;以鍵值為加的次數(shù) JRNZ ADD1 CALA READ-IN ;讀鍵盤(pán)上百位值,返回在R0 MVRD R3, 0064 ;100D 對(duì)應(yīng) 0064 H ADD2: ADD R2, R3 ;將百位值加在結(jié)果上 DEC R0 ;以鍵值為加的次數(shù) JRNZ ADD2 CALA READ-IN ;讀鍵盤(pán)上十位值,返回在R0 MVRD R3, 000A ;10D 對(duì)應(yīng) 000AH ADD3: ADD R2, R3 ;將十位值加在結(jié)果上 DEC R0
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 風(fēng)電技能培訓(xùn)課件圖片高清
- 青年群體游戲?qū)嵺`的媒介儀式建構(gòu)研究
- 含苯并咪唑結(jié)構(gòu)熱固性聚酰亞胺的制備與性能研究
- 第九版外科腫瘤免疫治療臨床指南解讀
- 急救護(hù)理筆記方法教程
- 神經(jīng)炎護(hù)理常規(guī)
- 腦出血術(shù)后護(hù)理診斷及護(hù)理措施
- 管理學(xué)人事任免案例
- 全麻疝氣健康宣教
- 顱腦CT檢查技術(shù)課件
- 糖尿病酮癥酸中毒疑難病例護(hù)理
- 2025年詩(shī)詞大賽考試指導(dǎo)題庫(kù)300題(含答案)
- 居民生活垃圾轉(zhuǎn)運(yùn)投標(biāo)方案(技術(shù)方案)
- 《智慧園藝》課程教學(xué)大綱
- 2025年上半年工作總結(jié)及下半年工作計(jì)劃簡(jiǎn)單版(2篇)
- 企業(yè)道路交通安全宣傳
- 635MPa級(jí)熱軋帶肋高強(qiáng)鋼筋應(yīng)用技術(shù)規(guī)程
- 中專(zhuān)《電工基礎(chǔ)》課程標(biāo)準(zhǔn)
- 他汀不耐受的臨床診斷與處理中國(guó)專(zhuān)家共識(shí)(2024)解讀課件
- 2024年7月國(guó)家開(kāi)放大學(xué)法學(xué)本科《知識(shí)產(chǎn)權(quán)法》期末考試試題及答案
- 2024移動(dòng)金融客戶(hù)端應(yīng)用軟件安全管理規(guī)范標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論