




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第1章 進(jìn)制及碼元1、進(jìn)制轉(zhuǎn)換129= 81H= 10000001B=201Q298= 12AH= 100101010B=452Q1000= 3E8H= 1111101000B= 1750Q5DH= 1011101 B= 135 Q= 93 D3E8H= 1111101000 B= 1750Q= 1000 D;357Q=11101111 B= 0EF H= 239 D2、進(jìn)制計算 100101102FE3F7,-119FFF7,-32759473、數(shù)據(jù)表示范圍:一個字節(jié)的無符號數(shù)表示范圍為0255,有符號數(shù)補(bǔ)碼表示范圍為-l28+127。兩個字節(jié)的無符號數(shù)表示范圍為065535,有符號數(shù)補(bǔ)碼表
2、示范圍為32768+32767。N位二進(jìn)制數(shù)的無符號數(shù)表示范圍為0(2N-1),有符號數(shù)(補(bǔ)碼)表示范圍為-2N-1(2N-1-1).4、35H代表的ASCII字符為5,代表十六進(jìn)制數(shù)時等價的十進(jìn)制值為53 ,代表壓縮8421BCD碼等價的十進(jìn)制值為35 ,代表非壓縮8421BCD碼等價的十進(jìn)制值為5。5、FFH代表無符號數(shù)時等價的十進(jìn)制值為255 ,代表補(bǔ)碼有符號數(shù)時等價的十進(jìn)制值為 一1 ,代表反碼有符號數(shù)時等價的十進(jìn)制值為 一0 ,代表原碼有符號數(shù)時等價的十進(jìn)制值為一l27。6、20的8位二進(jìn)制補(bǔ)碼為 ECH ,原碼為 94H ,反碼為 EBH 。158的16位二進(jìn)制補(bǔ)碼為009EH,原
3、碼為009EH ,反碼為 009EH 。7、英文字符一般在計算機(jī)內(nèi)占用(1)個字節(jié),每個字節(jié)的最高位一定為 0 ,全角英文字符在計算機(jī)內(nèi)占用 2個字節(jié),一個漢字在計算機(jī)內(nèi)占用 2 個字節(jié),每個字節(jié)最高位為 1 。8、設(shè)階碼用8位補(bǔ)碼表示,尾數(shù)部分用16位補(bǔ)碼表示,則(1/32+1/128+1/512)的尾數(shù)部分及階碼分別為多少?第2章 微機(jī)硬件基礎(chǔ)1、請畫出計算機(jī)系統(tǒng)硬件圖。2、8086/88CPU為什么要分為BIU和EU兩大模塊?答:為了使取指和分析、執(zhí)行指令可并行處理,提高CPU的執(zhí)行效率。8086/88CPU有兩大模塊總線接口單元BIU和執(zhí)行單元EU組成。3、簡述8086/88 CPU的
4、兩大模塊BIU和EU的主要功能及組成。答:如下圖所示:4、簡述8086/88 CPU的14個寄存器的英文名、中文名及主要作用。答:AX(Accumulator)(AH、AL)累加器,它是匯編編程中最常用的一個寄存器,主要用于乘除運(yùn)算、BCD運(yùn)算、換碼、IO操作、串操作、中斷調(diào)用等。 BX(Base)(BH、BL)基址寄存器,主要用于存放地址、基址(默認(rèn)相對于DS段)等。 CX(Counter)(CH、CL)計數(shù)器,主要用于循環(huán)計數(shù)、串操作計數(shù)、移位計數(shù)(CL)等。DX(Data)(DH、DL)數(shù)據(jù)寄存器,主要用于l6位乘除、問接IO、中斷調(diào)用等。 BP(Base Pointer)基址指針,主要
5、用于存放地址、基址(默認(rèn)相對于SS段)等。 SP(Stack Pointer)堆棧指針(棧頂指針),主要用于存放棧頂?shù)刂贰?SI(Source Index)源變址寄存器,用于存放地址、變址、串操作源變址。 DI(Destination Index)目的變址寄存器,用于存放地址、變址、串操作目的變址。 CS(Code Segment)代碼段寄存器(代碼段),用于存放正在或正待執(zhí)行的程序段的起始地址的高l6位二進(jìn)制數(shù)據(jù),即程序段的段地址。 , DS(Data Segment)數(shù)據(jù)段寄存器(數(shù)據(jù)段),用于存放正在或正待處理的一般數(shù)據(jù)段的起始地址的高l6位二進(jìn)制數(shù)據(jù),即一般數(shù)據(jù)段的段地址。 ES(Ex
6、tra Segment)附加數(shù)據(jù)段寄存器(附加段),用于存放正在或正待處理的附加數(shù)據(jù)段的起始地址的高l6位二進(jìn)制數(shù)據(jù),即附加數(shù)據(jù)段的段地址。 SS(Stack Segment)堆棧數(shù)據(jù)段寄存器(堆棧段),用于存放正在或正待處理的堆棧數(shù)據(jù)段的起始地址的高l6位二進(jìn)制數(shù)據(jù),即堆棧數(shù)據(jù)段的段地址。 IP(Instruction pointer)指令指針,它的內(nèi)容始終是下一條待執(zhí)行指令的起始偏移地址,與CS一起形成下一條待執(zhí)行指令的起始物理地址。CS:IP的作用是控制程序的執(zhí)行流程。IP一般會自動加l(邏輯加1、實際隨指令長度變化)移向下一條指令實現(xiàn)順序執(zhí)行;若通過指令修改CS或IP的值,則可實現(xiàn)程序
7、的轉(zhuǎn)移執(zhí)行。 PSW(Program Status word)程序狀態(tài)字,它其中有三個控制標(biāo)志(IF、DF、TF)和6個狀態(tài)標(biāo)志(SF、PF、ZF、OF、CF、AF)??刂茦?biāo)志是用于控制CPU某方面操作的標(biāo)志,狀態(tài)標(biāo)志是部分指令執(zhí)行結(jié)果的標(biāo)志。5、請畫出8086/88 CPU的內(nèi)部結(jié)構(gòu)圖。答:如下圖所示:6、請說明8086/88 CPU的標(biāo)志位的英文名、中文名及填充方法。答:IF(Interrupt Enable Flag)中斷允許標(biāo)志,用于控制CPU能否響應(yīng)可屏蔽中斷請求,IF=1能夠響應(yīng),IF=0不能響應(yīng)。 DF(Direction Flag)方向標(biāo)志,用于指示串操作時源串的源變址和目的串
8、的目的變址變化方向,DF-1向減的方向變化,DF=0向加的方向變化。 TF(TrapFlag)陷阱標(biāo)志(單步中斷標(biāo)志),TF=1程序執(zhí)行當(dāng)前指令后暫停,TF=0程序執(zhí)行當(dāng)前指令后不會暫停。 SF(Sign Flag)符號標(biāo)志,指令執(zhí)行結(jié)果的最高二進(jìn)制位是0還是l,為0,則SF=0,代表正數(shù);為l,則SF=1,代表負(fù)數(shù)。我們一般是用十六進(jìn)制數(shù)表示,則可以根據(jù)十六進(jìn)制的最高位是落在O7還是落在8F之間,若落在07之間則SF=0否則SF=1。 PF(Parity ChECk Flag)奇偶校驗標(biāo)志,指令執(zhí)行結(jié)果的低8位中1的個數(shù)是奇數(shù)個還是偶數(shù)個,若為奇數(shù)個則PF=0,若為偶數(shù)個則PF=1。 ZF(
9、Zero Flag)零標(biāo)志,指令執(zhí)行結(jié)果是不是為0,若為0則ZF=1,否則ZF=0。 OF(Overflow Flag)有符號數(shù)的溢出標(biāo)志,指令執(zhí)行結(jié)果是否超出有符號數(shù)的表示范圍,若超過則0F=1,否則OF=0。我們可以通過判斷是否出現(xiàn)以下四種情況之一:正加正得負(fù),正減負(fù)得負(fù),負(fù)加負(fù)得正,負(fù)減正得正。若出現(xiàn)則0F=1否則OF=0 CF(Carry Flag)進(jìn)位借位標(biāo)志無符號數(shù)的溢出標(biāo)志),指令執(zhí)行結(jié)果的最高位是否有向更高位進(jìn)位或借位,若有則CF=1,同時也代表無符號數(shù)溢出;若無則CF=0,也代表無符號數(shù)未溢出。 AF(Auxiliary Carry Flag)輔助進(jìn)位借位標(biāo)志,低4位二進(jìn)制是
10、不是有向高位進(jìn)位或借位,若有則AF=1,否則AF=0,其主要用于BCD修正運(yùn)算。7、內(nèi)存分段組織的優(yōu)缺點(diǎn)是什么?答:優(yōu)點(diǎn)如下:(1)80868088 CPU中的寄存器只有16位,如果采用它們直接尋址,則尋址能力勢必限制在64 KB范圍內(nèi),而采用分段組織可以較好地實現(xiàn)擴(kuò)展CPU的尋址能力。每段的大小可達(dá)64 KB,不同段的組合則可尋址更大的范圍。 (2)使程序與數(shù)據(jù)相對獨(dú)立,不同存取方式的數(shù)據(jù)也相對獨(dú)立。 程序:存放于代碼段CS中 堆棧方式:存放于堆棧段SS中 數(shù)據(jù):隨機(jī)方式:存放于數(shù)據(jù)段DS及附加段ES中 (3)便于程序和數(shù)據(jù)的動態(tài)裝配,從一個地方挪到另外一個地方只要更改一下段寄存器的值即可,
11、段內(nèi)偏移可以不用改變。缺點(diǎn):內(nèi)存地址采用分段組織增加地址計算的復(fù)雜度,降低了CPU的執(zhí)行效率。8、1MB內(nèi)存最多可以有(64K)個不同的段地址,若不允許重疊的話最多可有(16)個不同的段地址。不同的段間(可以)重疊。9、設(shè)DS=26FCH,BX=108H,SI=9A8H,試求出使DS:BX與ES:Sl指向同一物理地址的ES值。 答:即DS:BX=ES:SI DS:BX=DS l6+BX=26FCH16+108H=270C8H ES:SI=ES16+SI=ES16+9A8HES=(270C8H一9A8H)l6=2672H10、接口、端口以及端口地址之間的對應(yīng)關(guān)系如何?答:一個計算機(jī)系統(tǒng)內(nèi)有很多接
12、口,一個接口內(nèi)一般有多個端口,一個端口可以有多個端口地址與其對應(yīng)(這叫重疊地址),一個端口地址可以對應(yīng)多個端口(但需要繼續(xù)區(qū)分才能訪問,如讀寫順序、讀寫信號、數(shù)據(jù)位、索引區(qū)分)。所以通過端口傳輸信息首先需要區(qū)分端口,區(qū)分端口可通過端口地址不同來區(qū)分。11、訪問端口有哪些方法?答:(1)用I/O指令實現(xiàn)信息傳輸;(2)通過BIOS中斷調(diào)用實現(xiàn)信息傳輸;(3)通過DOS中斷調(diào)用實現(xiàn)信息傳輸。12、請根據(jù)圖2.3說明ADD AX, BX指令的取指及執(zhí)行過程。自己看書13、8086/88 的20位物理地址是怎樣形成的?當(dāng)CS=2000H, IP=0100H, 下一條待執(zhí)行指令的物理地址等于多少?答:2
13、0位物理地址由段地址左移4位加偏移地址形成,下一條待執(zhí)行指令等于CS*10H+IP得到20100H。14、已知當(dāng)前數(shù)據(jù)段位于存儲器的B1000H到BF0FFH范圍內(nèi),請指出DS段寄存器的取值范圍。答:DS段寄存器的取值范圍:AF10HB100H第3章尋址方式及指令系統(tǒng)1、指令是CPU可以理解并執(zhí)行的操作命令,指令由操作碼和操作數(shù)兩部分組成,指令有兩個級別,即機(jī)器級和匯編級。2、請畫出程序執(zhí)行流程示意圖。3、指令主要有哪些分類方式及其主要類別是什么?答:指令分類有不同的方式。按操作數(shù)的個數(shù)將指令分為零地址指令(無操作數(shù))、一地址指令(只有一個操作數(shù))、二地址指令(有兩個操作數(shù))、多地址指令(多于
14、兩個操作數(shù));按指令級別分為機(jī)器指令和匯編指令:按是否轉(zhuǎn)移分為轉(zhuǎn)移指令和順序指令;按功能分為七大類:傳送類、算術(shù)運(yùn)算類、位操作類、IO類、串操作類、CPU控制類、轉(zhuǎn)移類;按指令長度(即指令占用的字節(jié)數(shù))分為l字節(jié)指令、2字節(jié)指令等,80868088指令長度是不同的,叫變字長,不同的指令有不同的指令長度,從16字節(jié)均有;按指令執(zhí)行期間取操作數(shù)是否需要與總線打交道分為內(nèi)部指令(不需)和外部指令(需要),類似功能的指令內(nèi)部指令比外部指令執(zhí)行速度快,所以在編程時盡量采用內(nèi)部指令即多用寄存器優(yōu)化程序。4、操作數(shù)的尋址方式有哪些?并舉例說明其主要特點(diǎn)。答:操作數(shù)尋址方式主要有立即尋址方式、寄存器尋地址、存
15、儲器尋址方式、端口尋址方式4類。(1)立即尋址方式:操作對象是這個操作數(shù)本身,MOV AL,5(2)寄存器尋地址:操作對象是寄存器中的內(nèi)容MOV AX,BX(3)存儲器尋址方式:操作對象是內(nèi)存地址所對應(yīng)的存儲單元中的內(nèi)容,MOV AX 2000H (4)端口尋址方式:操作數(shù)是指明端口的地址、端口地址所對應(yīng)的端口中的內(nèi)容是操作對象IN AX,46直接尋址。5、內(nèi)存尋址中段寄存器與段內(nèi)偏移地址對應(yīng)關(guān)系如何?6、設(shè)CS=1000H,DS=2000H,ES=3000H,SS=4000H,IP=100H,SP=200H,BX=300H,BP=400H,SI=500H,則下一條待執(zhí)行指令的物理地址為多少?
16、當(dāng)前棧頂?shù)奈锢淼刂窞槎嗌?BX代表的存儲單元的物理地址為多少?BP代表的存儲單元的物理地址為多少?ES:BX+SI代表的存儲單元的物理地址為多少?答:下一條待執(zhí)行指令的物理地址=CS16+IP=1000H16+IOOH=10100H。 當(dāng)前棧頂?shù)奈锢淼刂?SS16+SP=4000H16+200H=40200H。 BX代表的存儲單元物理地址=DS16+BX=2000H X l6+300H=20300H。 BP代表的存儲單元物理地址=SS X l6+BP=4000H16+400H-40400H。ES:BX+SI代表的存儲單元物理地址=ES16+BX+SI=3000H16+300H+500H=308
17、00H 7、試根據(jù)以下要求,分別寫出相應(yīng)的匯編語言指令。(1)以寄存器BX和DI作為基址變址尋址方式把存儲器中的一個字送到DX寄存器。 答:MOV DX,BX+DI(2)以寄存器BX和偏移量VALUE作為寄存器相對尋址方式把存儲器中的一個字和AX相加,把結(jié)果送回到那個字單元。 答:ADD VALUEBX,AX(3)將1字節(jié)的立即數(shù)0B6H與以SI作為寄存器間接尋址方式的字節(jié)單元相比較。 答:CMP BYTE PTRSI,0B6H(4)將BH的高4位與低4位互換。 答:MOV CL,4 ROR BH,CL;或者ROL BH,CL (5)測試BX的第3、7、9、12、13位是否同時為0。 答:TE
18、ST BX,3288H;0011001010001000B (6)將存放了09數(shù)值的DL寄存器中的內(nèi)容轉(zhuǎn)化為相應(yīng)的09的字符。 答:ADD DL,30H;或者OR DL,30H (7)將存放了AF字符的AL寄存器中的內(nèi)容轉(zhuǎn)化為相應(yīng)的數(shù)值。 答:SUB AL,37H8、寫出清除AX寄存器的多種方法并比較(要求單指令實現(xiàn))。答:(1)ANDAX,0;可以對AX清零,還可以清除進(jìn)位位和影響到SF、ZF、PF標(biāo)志位。(2)MOVAX,0;此條指令占用3個字節(jié)。(3)SUB AX,AX ;減法指令, 該條指令只占用2個字節(jié)。(4)XOR AX,AX9、分別用存儲器的5種尋址方式實現(xiàn)將以A為首址的第5個字
19、(注意:從第0個算起)送AX的指令序列。10、指出下列指令錯誤的原因。答:(1)MOV CL,300 ;300超過字節(jié)數(shù)據(jù)表示范圍 (2)MOV CS,AX ;CS不能作為目的操作數(shù) (3)MOV BX,DL ;數(shù)據(jù)類型不匹配 (4)MOV ES,1000H :立即數(shù)不能送給段寄存器 (5)INC BX ;數(shù)據(jù)類型不明確 (6)ADD AX,DS :段寄存器不能參加運(yùn)算 (7)TEST BX,CX ;存儲器間接尋址只能使用BX、Sl、Dl、BP四個之一 (8)SUB BX,BP+SI ;加減兩個操作數(shù)不能同時為存儲操作數(shù) (9)JC SI ;條件轉(zhuǎn)移只有短轉(zhuǎn)移尋址方式(10)SHL BX ;少
20、給一個表明移位次數(shù)的操作數(shù),l或CL11、(1)CS=(1000)IP=(0155)(2)CS=(1000)IP=(176F)(3)CS=(1000)IP=(17C6)(4)CS=(2000)IP=(0146)(5)CS=(1000)IP=(1770)(6)CS=(2000)IP=(0146)12、分別說明下列各組指令中的兩條指令的區(qū)別。答:(1)MOV AX,TABLELEA AX,TABLE假設(shè)TABLE為字變量名,則:左為將TABLE單元的內(nèi)容送AX,右為將TABLE單元的偏移地址送AX。假設(shè)TABLE為字節(jié)變量名,則:左為錯誤指令,右為將TABLE單元的偏移地址送AX假設(shè)TABLE為常
21、量名,則:左為將TABLE的內(nèi)容送AX,右為錯誤指令(2)AND BL,0FHOR BL,0FH 左為將BL的高4位清0,右為將BL的低4位置1(3)JMP SHORT Ll JMP NEA RPTR Ll 左為短轉(zhuǎn)移,2字節(jié)的指令,轉(zhuǎn)移范圍為一l28+127右為近轉(zhuǎn)移,l字節(jié)的指令,轉(zhuǎn)移范圍為-32 768+32 767(4)MOV AX,BXMOV AX,BX左為將BX的值送AX右為將BX的值作為相對DS段的內(nèi)存單元偏移地址,取出字單元值送AX(5)SUB DX,CXCMP DX,CX 左為減法,并將DX-CX的值存入DX中 右為比較,做減法,但不會將DX-CX的值存入DX中(6)MOV
22、BPSI,CL MOV DS:BPIESI,CL 左邊第操作數(shù)默認(rèn)為相對于SS段偏移的存儲器操作數(shù) 右邊第一操作數(shù)采用段超越,指定為相對于DS段偏移的存儲器操作數(shù)13、寫出判斷AL為正為負(fù)的程序段(請至少用三種方法)。答:方法一:CMP AL,80H ;而后用JAE代表負(fù)數(shù)轉(zhuǎn)移,JB代表正數(shù)轉(zhuǎn)移 方法二:CMP AL,00H ;而后用JGE代表正數(shù)轉(zhuǎn)移,JL代表負(fù)數(shù)轉(zhuǎn)移 方法三:TEST AL,80H ;而后用JNZ代表負(fù)數(shù)轉(zhuǎn)移,JZ代表正數(shù)轉(zhuǎn)移 方法四:OR AL,AL ;而后用JNS代表負(fù)數(shù)轉(zhuǎn)移,JS代表正數(shù)轉(zhuǎn)移 方法五:AND AL,AL ;而后用JNS代表負(fù)數(shù)轉(zhuǎn)移,JS代表正數(shù)轉(zhuǎn)移 方
23、法六:SUB AL,00H ;而后用JGE代表正數(shù)轉(zhuǎn)移,JL代表負(fù)數(shù)轉(zhuǎn)移 方法七:TEST AL,80H :而后用JNS代表正數(shù)轉(zhuǎn)移,JS代表負(fù)數(shù)轉(zhuǎn)移14、思考題:試比較以下幾條指令的功能。答:MOV BX,SI ;將SI的值送給BXMOV BX,SI ;將SI的值作為偏移地址找到對應(yīng)的內(nèi)存單元中的值送給BXMOV BX,OFFSETSI ;將Sl的值作為偏移地址找到對應(yīng)內(nèi)存單元的偏移地址送給BX,即SI的值送給BX LEA BX,SI ;將Sl的值作為偏移地址找到對應(yīng)內(nèi)存單元的偏移地址送給BX, 即Sl的值送給BX LDS BX,SI ;將Sl值作為偏移地址找到對應(yīng)內(nèi)存單元中的第一個字值送給
24、BX, 第二個字值送DS LES BX,SI :將SI值作為偏移地址找到對應(yīng)內(nèi)存單元中的第一個字值送給BX, 第二個字值送ES15、設(shè)B、D為字節(jié)變量,A、C為字變量,且A除B可能會溢出,試編寫無符號數(shù)或有符號數(shù)AB商送C,余數(shù)送D。答:可能會溢出則要考慮擴(kuò)展數(shù)據(jù)表示能力。 ;無符號數(shù)除法 ;有符號數(shù)除法MOV AL,B MOV AL,BXOR AH,AH CBWMOV BX,AX MOV BX,AXMOV AX,A MOV AX,AXOR DX,DX ;無符號擴(kuò)展 CWD ;有符號擴(kuò)展DIV BX IDIV BXMOV C,AX MOV C,AXMOV D,DL MOV D,DL16、編寫程
25、序段實現(xiàn)DX、AX中32位二進(jìn)制數(shù)*l0 (設(shè)不溢出)。答:;X*10=X*8+X*2,用移位指令實現(xiàn)SHL AX,1RCL DX,1 :DX,AX=(DX,AX)*2MOV BX,DXMOV BP,AX ;BX,BP轉(zhuǎn)存2倍值SHL AX,lRCL DX,l ;再乘2SHL AX,lRCL DX,1 :再乘2ADD AX,BPADC DX,BX ;8倍+2倍=10倍17、請編寫程序段實現(xiàn)如圖3.33所示功能。MOV SI,BXLDSBX,SI18、設(shè)已有定義STRDB“Sdfikjwsmfw893040pYUIUKLHGUkjdshf8”NEQU$ - STR1試編寫實現(xiàn)在STR中查找是否存
26、在非A的功能程序段。即表示STR串中大部分是A,若其中存在不是A的字符則查找成功,若STR全部為A則不成功。19、程序理解執(zhí)行。(1) MOV AH,一l ;AH=FFH MOV AL,180 ;AL=B4H MOV BL,15 ;BL=0FH ID BL ;AX/BL即:-7615,商-5,余數(shù)-l 程序段執(zhí)行后,AX=0FFFBH。 說明:關(guān)鍵是要知道誰除以誰,特別注意是有符號除還是無符號除。(2) MOV AL,0CH ;AL=0CH OR AL,AL ;AL=0CH,CF=0 SBB AL,0F0H ;AL=lCH NEG AL ;AL=E4H,CF=1 ADC AL,0D4H ;AL
27、=B9H TEST AL,35H ;AL=B9H,CF=0 程序段執(zhí)行后,CF= 0 ,AL=B9H。 說明:第(1)、(2)小題只要理解每條指令功能及對標(biāo)志位的影響,逐步進(jìn)行即可完成。(3) MOV AL,08H MOV AH,一l ;AX=FF08H MOV BX,0F8H ;BX=00F8H CMP AX,BX 程序段執(zhí)行后SFOF=1 ,CF= 0 。(4) MOV AX,中 ;AX的二進(jìn)制高位為1,即落在負(fù)數(shù)范圍 MOV BX,AB ;BX的二進(jìn)制高位為0,即落在正數(shù)范圍 CMP AX,BX 程序段執(zhí)行后SFOF=1 ,CF= 0 。 說明:第(3)(4)小題實質(zhì)是考查有符號數(shù)和無符
28、號數(shù)大小的比較。(5) MOV AX,58 ;AX=3538H AND AX,0F0FH ;AX=0508H AAD ;AX=58=003AH 程序段執(zhí)行后AX= 003A H,即58。 程序段的功能是:將兩位非壓縮BCD碼轉(zhuǎn)化為其對應(yīng)的十六進(jìn)制數(shù)。 說明:可用AAD指令實現(xiàn)將十位和個位數(shù)值拼裝還原為099的十六進(jìn)制數(shù)。反之將099的數(shù)值分離成十位和個位可用AAM指令實現(xiàn),教材匯編語言、微機(jī)原理及接口技術(shù)(第2版)例510和例513中均有應(yīng)用。20、程序語句填空。(1)下列是完成120之間的奇數(shù)累加和存于AL中的程序段: XOR AL,AL MOV CX,10 ;循環(huán)次數(shù) MOV BL,1AG
29、AIN:ADD ALBL ADD BL,2 ;步長,參數(shù)改變 LOOP AGAIN(2)下列是在串長為N的串STR中查找是否有M字符的程序段: MOV DI,SEG STR MOV ES,DI LEA Dl,STR CLD MOV CX,N MOV AL,7M7 REPNE SCASB ;串查找核心指令 JZ FOUND ;轉(zhuǎn)到找到分支(3) 下列是完成1位十六進(jìn)制數(shù)X顯示的程序段: MOV DL,X AND DL,0FH ADD DL,30H ;或OR DL,30H CMP AL,9 JBE NEXT ADD DL,7NEXT:MOV AH,02H INT 21H(4) 將DH中的二進(jìn)制數(shù)看
30、成壓縮BCD碼并送出顯示的程序段如下: MOV DL,DH MOV CL,4 ;獲取十位 SHR DL,CL ADD DL,30H MOV AH,2 ;2號功能調(diào)用顯示十位 INT 21H MOV DL,DH AND DL,0FH ;獲取個位 OR DL,30H INT 21H21、圖略22、假定AX和BX中的內(nèi)容為帶符號數(shù),CX和DX的內(nèi)容為無符號數(shù),請用比較指令和轉(zhuǎn)移指令實現(xiàn)以下條件轉(zhuǎn)移:(1)若DX的內(nèi)容超過CX的內(nèi)容,則轉(zhuǎn)到Ll。答:CMP DX,CX JA Ll(2)若BX的內(nèi)容大于AX的內(nèi)容,則轉(zhuǎn)到L2。答:CMP BX,AX JG L2(3)若DX的內(nèi)容未超過CX的內(nèi)容,則轉(zhuǎn)到L
31、3。答:CMP DX,CX JNA L3(4)判斷BX與AX相比較是否產(chǎn)生溢出,若溢出則轉(zhuǎn)到L4。答:CMP BX,AX JO L4(5)若BX的內(nèi)容小于等于AX的內(nèi)容,則轉(zhuǎn)到L5。答:CMP BX,AX JLE L5(6)若DX的內(nèi)容小于等于CX的內(nèi)容,則轉(zhuǎn)到L6。答:CMP DX,CX JBE L623、假設(shè)BX=0A69H,VALUE變量中存放的內(nèi)容為1927H,寫出下列各條指令執(zhí)行后的BX的寄存器中和CF、ZF、SF與OF的值:(1) XOR BX,VALUE(2) AND BX,VALUE(3) OR BX,VALUE(4) SUB BX,VALUE(5) CMP BX,VALUE(
32、6) TEST BX,VALUE答: BX CF ZF SF OF(1) 134EH 0 0 0 0(2) 0821H 0 0 0 0(3) 186FH 0 0 0 0(4) Fl42H 1 0 1 0(5) 0A69H 1 0 1 0(6) 0A69H 0 0 0 0第4章 MASM匯編語言1、名詞解釋指令 偽指令 宏指令 匯編語句 匯編語言 匯編源程序 匯編程序 匯編 連接程序 連接答:指令:是CPU可以理解并執(zhí)行的操作命令。偽指令:是用于為匯編程序編譯時理解程序框架、分配空間(數(shù)據(jù)定義)等的匯編語句。宏指令:實質(zhì)上就是有多條指令打包而成的一組指令的集合。匯編指令:一行只能寫一條匯編語句,
33、一條匯編只能寫在一行內(nèi)。匯編語言:語句中的表達(dá)式是在匯編過程中完成計算的,即翻譯之后的機(jī)器語言程序中是不包含表達(dá)式的。匯編源程序:主要有四步,錄入源程序、匯編、連接、運(yùn)行、調(diào)試運(yùn)行。(不準(zhǔn)確)匯編程序:編寫匯編程序?qū)嵸|(zhì)上就是在記住程序框架的基礎(chǔ)上填寫兩空,即數(shù)據(jù)定義部分和功能程序部分。匯編:格式:MASM 盤符路徑程序基本名.ASM 建議程序基本名不要省略.連接程序: 編譯器和匯編程序都經(jīng)常依賴于連接程序,它將分別在不同的目標(biāo)文件中編譯或匯編的代碼收集到一個可直接執(zhí)行的文件中。連接程序還連接目標(biāo)程序和用于標(biāo)準(zhǔn)庫函數(shù)的代碼,以及連接目標(biāo)程序和由計算機(jī)的操作系統(tǒng)提供的資源連接:LINK 盤符路徑程
34、序基本名.OBJ建議程序基本名不要省略。2、寫出三種匯編語句的基本格式并進(jìn)行說明。教材P503、由用戶取名的名字項有哪些?名字項的取名規(guī)則如何?教材P504、請計算下列表達(dá)式的值。答(1) 3+63*4 mod 3 ;注意運(yùn)算優(yōu)先級,值為5(2) (M GT N) AND N OR M LE N AND M ;M,N中的較小值(3) 5 GT 3 (作為8位和16位二進(jìn)制數(shù)各為多少) ;0FFH和0FFFFH(4) 20 AND 77(作為8位和16位二進(jìn)制數(shù)各為多少) ;04H和0004H(5) 5 AND-1 :5(6) 5 OR-1 ;-l(7) NOT 5 (作為8位和16位二進(jìn)制數(shù)各
35、為多少) ;0FAH和0FFFAH,均為-6(8) 設(shè)有定義如下: A DB 2,4,6,8 B DW 2,4,6,8 C DW 5 DUP(2,4,6,8) 則TYPE A、TYPE B和TYPE C分別為多少? ;1,2,2 LENGTH A、LENGTH B和LENGTH C分別為多少? ;1,1,5 SIZE A、SIZE B和SIZE C分別為多少? ;1,2,105、匯編語言中的數(shù)據(jù)類型與其他高級語言的數(shù)據(jù)類型相比較有哪些特點(diǎn)?6、設(shè)有如下定義:A DB 1101B,34,56Q,78H,4 DUP (?),ABCD請畫出內(nèi)存分配示意圖并將其改成內(nèi)存中存放次序相同的DW及DD的等價
36、定義語句。答:圖自己畫。A DW 220DH,782EH,2 DUP(?),4241H,4443HB DD,782E220DH,?,44434241H7、一個匯編源程序最多可以定義多少個段?段寄存器與所定義的段之間的對應(yīng)關(guān)系是怎樣實現(xiàn)的?答:最多4個段,通過段對應(yīng)偽指令A(yù)SSUME 段寄存器名:段名來實現(xiàn)的對應(yīng)。8、設(shè)置一個數(shù)據(jù)段DATA,其中連續(xù)存放6個變量,用段定義語句和數(shù)據(jù)定義語句寫出數(shù)據(jù)段:(1)A1為字符串變量:Example。(2)A2為數(shù)值字節(jié)變量:l00,127,-l,80H,35Q,1101110B。(3)A3為4個0的字變量。(4)A4為A3的元素個數(shù)。(5)A5為A3占用
37、的字節(jié)數(shù)。(6)A6為Al,A2,A3,A4,A5占用的總字節(jié)數(shù)。答:DATA SEGMENT A1 DB Example A2 DB l00,127,一l,80H,35Q,ll0111013 A3 DW 4 DUP(0) A4 DW LENGTH A3 A5 DW A4一A3 ;或SIZE A3 A6 DW $一AlDATA ENDS9、指出下列每一小題中的偽指令表達(dá)的操作哪些是錯誤的?錯誤在哪里?自己做。10、指令OR AX, 0FC8H OR 563FH中,問兩個OR操作分別在什么時候進(jìn)行?有什么區(qū)別?用立即數(shù)寫出此等價指令。答:第一個OR是CPU執(zhí)行指令時完成的操作,第二個OR是匯編程
38、序匯編時完成的操作。用立即數(shù)寫出的等價指令是OR AX, 5FFFH。11、指出下列每一對偽指令語句的區(qū)別自己做。12、請進(jìn)行宏與子程序的比較。教材P6013、請用流程圖表示完整匯編程序的上機(jī)過程。教材P6114、請默寫兩段程序的基本框架。教材P6015、請寫出兩字節(jié)數(shù)據(jù)相乘保存于字中的宏定義。答:參考代碼如下:ABMMACRO OPR1,OPR2,OPR3 ;宏定義,三個形參PUSH AXPUSH BX MOV AL,OPR1MOV BL,OPR2MUL BLMOV OPR3,AXPOP BXPOP AXENDM ;宏定義結(jié)束 第5章 匯編程序設(shè)計1、程序的三種基本結(jié)構(gòu)是什么?請分別畫出各自
39、核心部分的流程圖。P662、請畫出將1字節(jié)二進(jìn)制數(shù)據(jù)轉(zhuǎn)化成十六進(jìn)制數(shù)顯示的流程圖。自己畫3、編程實現(xiàn)兩個字節(jié)變量相乘送字變量的程序。答:DATA SEGMENT A DB l2H B DB 34H C DW ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX MOV AL,A MUL B MOV C,AX :C=AB MOV AH,4CH ;返回DOS INT 21HCODE ENDS END START4、編程實現(xiàn)從鍵盤接收2個一位十進(jìn)制數(shù)并計算和顯示它們的積。(如輸入7和9則顯示為:7*9=63)
40、答:CODE SEGMENT ASSUME CS:CODEAGAINl:MOV AH,1 ;錄入第一位 INT 2lH CMP AL,0 JB AGAINl CMP AL,9 JA AGAINl MOV DH,AL SUB DH,30H MOV DL,* ;顯示”*” MOV AH,2 INT 21HAGAIN2:M0V AH,1 ;錄入第二位 INT 21H CMP AL,0 JB AGAIN2 CMP AL,9 JA AGAIN2 SUB AL,30H MUL DH ;相乘 AAM ;分離十位和個位 MOV DH,AL ;暫存?zhèn)€位 MOV DL,AH :顯示十位 ADD DL,30H MO
41、V AH,2 INT 21H MOV DL,DH ;顯示個位 ADD DL,30H INT 21H MOV AH,4CH INT 21HCODE ENDS END AGAINl5、編程實現(xiàn)從鍵盤接收兩位十六進(jìn)制數(shù)并將其轉(zhuǎn)化為等值的十進(jìn)制數(shù)顯示出來(如輸入7CH=124,要求至少設(shè)計一個子程序)自己寫6、編程實現(xiàn)三個變量值的排序(分別用無符號數(shù)和有符號數(shù)處理)。答:實現(xiàn)A、B、C三個變量從小到大排序的程序如下。DATA SEGMENTA DB l2HB DB 34HC DB 23HDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,D
42、ATA MOV DS,AX MOV AL,A CMP AL,B JBE NEXTl ;無符號,有符號用JLE XCHG AL,B MOV A,ALNEXTl:CMP AL,C JBE NEXT2 :無符號,有符號用JLE XCHG AL,C MOV A,ALNEXT2:MOV AL,B CMP AL,C JBE NEXT3 ;無符號,有符號用JIE XCHG AL,C MOV B,ALNEXT3:MOV AH,4CH ;返回DOS INT 21HCODE ENDS END START7、編程實現(xiàn)任意個有符號字節(jié)數(shù)據(jù)之和(和要求用字變量存放)。答:DATA SEGMENT A DB ;任意個字節(jié)
43、數(shù)據(jù) N EQU $-A ;元素個數(shù) SUM DW ?DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATASTAR:MOV AX,DATA MOV DS,AX LEA SI,A XOR DX,DX MOV CX,NAGAIN:MOV AL,SI】 CBW ADC DX,AX LOOP AGAIN MOV SUM,DX MOV AH,4CH :返回DOS INT 21HCODE ENDS END START8、編寫一個菜單選擇處理程序。自己寫9、編寫一子程序?qū)崿F(xiàn)從某字?jǐn)?shù)組中選出最大值。答: 求數(shù)組元素最大值過程名MAX,數(shù)組首址為Sl,元素個數(shù)為CX,最大值
44、由AX帶出。MAX PROC NEAR PUSH SI PUSH CX MOV AX,S1AGAIN:CMP AX,SI JGE NEXT ;有符號數(shù),若為無符號數(shù)則JAE MOV AX,SINEXT:INC SI INC SI LOOP AGAIN POP CX POP SI RETMAX ENDP10、編寫一子程序?qū)崿F(xiàn)從某字?jǐn)?shù)組中求出平均值(設(shè)其和不會超出范圍)。答:;求數(shù)組元素之和函數(shù)SUM,數(shù)組首址為Sl,數(shù)組元素個數(shù)為CX,和由AX帶出。SUM PROC NEAR PUSH SI PUSH CX XOR AX,AXAGAIN:ADD AX,S1 INC Sl INC SI LOOP
45、AGAIN POP CX POP Sl RET SUM ENDP11、從鍵盤接收一串字符,并另起一行逆序顯示該字符串。答:DATA SEGMENT BUF DB 81,0,81 DUP(?)DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:MOV AX,DATA MOV DS,AX LEA DX,BUF MOV AH,l0 ;接收一串字符 INT 2lH MOV DL,0DH ;顯示回車換行 MOV AH,2 INT 21H MOV DL,0AH MOV AH,2 INT 21H MOV CL,BUF+1 ;取接收的字符數(shù) XOR CH,CH
46、LEA BX,BUF+1 ADD BX,CX ;BX指向串尾AGAIN:MOV DL,BX ;逆向顯示 MOV AH,2 TNT 21H DEC BX LOOP AGAIN MOV AH,4CH INT 2lHCODE ENDS END START 12、假設(shè)密碼為“123456”,從鍵盤接收密碼并驗證,若正確則顯示“歡迎使用本系統(tǒng)”,否則顯示“密碼錯誤,您無權(quán)使用!”。自己寫13、從鍵盤輸入1字節(jié)的兩位十六進(jìn)制數(shù)據(jù),并分別用二進(jìn)制、八進(jìn)制、十進(jìn)制、十六進(jìn)制顯示出來其等價的值。自己寫第6章 Intel 808688微處理器1、8086/88 和傳統(tǒng)的8位計算機(jī)相比在執(zhí)行指令方面有什么不同?有什
47、么優(yōu)點(diǎn)?答:總線接口部分和執(zhí)行部分是分開的,每當(dāng)EU執(zhí)行一條指令時,造成指令隊列空出2個或空出一個指令字節(jié)時 ,BIU馬上從內(nèi)存中取出下面一條或幾條指令,以添滿他的指令隊列。這樣,一般情況下,CPU在執(zhí)行完一條指令后,便可馬上執(zhí)行下一條指令,不像以往8位CPU那樣,執(zhí)行完一條指令后,需等待下一條指令。即EU從指令隊列中取指令、執(zhí)行指令和BIU補(bǔ)充指令隊列的工作是同時進(jìn)行的。這樣大大提高了CPU利用率,降低了系統(tǒng)都對存儲器速度的要求。2、8086有哪兩種工作模式?其主要區(qū)別是什么?答:答:8086有最大和最小兩種工作模式,最小工作模式是指MNMX引腳為高電平,系統(tǒng)中只有80868088微處理器,
48、系統(tǒng)中的所有控制信號都直接由CPU產(chǎn)生。最大工作模式是指MNMX引腳為低電平,它是相對于最小模式而言的,系統(tǒng)中除了80868088作為處理器外,還包含數(shù)值運(yùn)算協(xié)處理器8087、輸入輸出協(xié)處理器8089,以及總線控制器8288和總線仲裁控制器8289等支持芯片,從而可以完成更復(fù)雜的運(yùn)算或控制任務(wù)。3、請畫出8086/88 CPU功能模塊圖4、請說明8088與8086的主要區(qū)別。答:教材P81、P82和P915、請畫出8088CPU最小模式核心示意圖。參考P85圖6.8最小模式的8086CPU子系統(tǒng)圖6、請畫出8088CPU最大模式核心示意圖。參考P87圖6.10最大模式的8086CPU子系統(tǒng)7、
49、8284時鐘發(fā)生器的功能是什么?它產(chǎn)生哪些信號?這些信號有何作用?教材P838、80868088的基本總線周期由幾個時鐘周期組成?IBM PCXT機(jī)中CPU的時鐘周期包括多少?一個輸入或輸出總線周期包括多少個時鐘周期?答:80868088的基本總線周期由4個時鐘周期組成。mM PCXT機(jī)中CPU的時鐘周期是210 nS,一個輸入或輸出總線周期至少是4個時鐘周期。說明:總線周期CPU的BIU取指令和傳送數(shù)據(jù)需要的時間。一個基本的總線周期由4個時鐘周期(T狀態(tài))組成,即T1、T2、T3、T4狀態(tài)。(1)在T1狀態(tài),CPU向地址數(shù)據(jù)復(fù)用線(ADl5ADO)和地址狀態(tài)復(fù)用線(AldS6A1dS3)上發(fā)送地址信息,產(chǎn)生
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 60 選擇性必修3 第九單元 第51講 胚胎工程
- 采石場承包與礦產(chǎn)資源開發(fā)管理合同
- 文化創(chuàng)意產(chǎn)業(yè)采購合同版權(quán)保護(hù)保密協(xié)議
- 物態(tài)變化溫度教學(xué)課件
- 消防救援知識考試試卷含黨召喚救援裝備等多方面內(nèi)容
- 工程交接驗收移交表
- 服務(wù)規(guī)范執(zhí)行效果評估考核試卷
- 智能物流配送路徑規(guī)劃算法考核試卷
- 實踐項目設(shè)計與實施考核試卷
- 機(jī)電科長面試題及答案
- 2025至2030高純氯化鉀行業(yè)產(chǎn)業(yè)運(yùn)行態(tài)勢及投資規(guī)劃深度研究報告
- ××中學(xué)實驗室危化品管理細(xì)則
- 家政服務(wù)培訓(xùn) 課件
- 2025年婚姻家庭咨詢師職業(yè)資格考試試題及答案
- 2025年人教版小學(xué)五年級下冊數(shù)學(xué)期末重難點(diǎn)測評試題(含答案和解析)
- 2024年天津市應(yīng)急管理局招聘行政執(zhí)法專職技術(shù)檢查員筆試真題
- 變電站創(chuàng)優(yōu)工程匯報
- 廣西壯族自治區(qū)欽州市2024-2025學(xué)年高二上學(xué)期期末檢測歷史試題(含答案)
- 項目部主要管理制度
- 音樂杜鵑圓舞曲教案
- T/CACE 0129-2024竹編安全帽
評論
0/150
提交評論