




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、習(xí)題二IA-32 結(jié)構(gòu)微處理器主要內(nèi)容:主要介紹8086/8088CPU內(nèi)部結(jié)構(gòu)。了解 80X86CPU的特點(diǎn)。2.1 8086 CPU在內(nèi)部結(jié)構(gòu)上由哪幾部分組成 ?其功能是什么?【答】8086的內(nèi)部結(jié)構(gòu)成兩部分:總線接口部件BIU,負(fù)責(zé)控制存儲器讀寫。執(zhí)行部件EU,EU從指令隊列中取出指令并執(zhí)行。8086是16位微處理器,有16根數(shù)據(jù)線、20根地址線,內(nèi)部寄存器、算術(shù)邏輯部件為16位。2.2 8086的總線接口部件有那幾部分組成?【答】8086的總線接口部件主要由下面幾部分組成:4個段寄存器 CS/DS/ES/SS, 個16位的指令指針寄存器IP, 個20位地址加法器,6字節(jié)的指令隊列,內(nèi)部
2、暫存器以及輸入輸出電路組 成2.3 8086的執(zhí)行部件有什么功能 ?由那幾部分組成?【答】8086的執(zhí)行部件主要由下面幾部分組成:(1)四個16位通用寄存器 AX BX CX DX,四個16位專用寄存器,包括二個指針寄存器 SP BP,二個變址寄存器 SI、DI,算術(shù)邏輯單元 ALU, 標(biāo)志寄存器。2.4 8086CPU狀態(tài)標(biāo)志和控制標(biāo)志又何不同?程序中是怎樣利用這兩類標(biāo)志的? 8086的狀態(tài)標(biāo)志和控制標(biāo)志分別有哪些?【答】標(biāo)志分兩類:狀態(tài)標(biāo)志(6位),反映剛剛完成的操作結(jié)果情況,包括零標(biāo)志ZF、符號標(biāo)志SF、奇偶標(biāo)志PF、進(jìn)位標(biāo)志CF輔助進(jìn)位標(biāo)志 AF、溢出標(biāo)志 OF??刂茦?biāo)志(3位),在某
3、些 指令操作中起控制作用,包括單步運(yùn)行標(biāo)志 TF、方向標(biāo)志DF與中斷允許標(biāo)志IF。利用狀態(tài)標(biāo) 志可以掌握當(dāng)前程序操作的結(jié)果,例如了解是否產(chǎn)生進(jìn)位,是否溢出等。2.5 8086/8088和傳統(tǒng)的計算機(jī)相比在執(zhí)行指令方面有什么不同?這樣的設(shè)計思想有什么優(yōu)點(diǎn)?8086CPU執(zhí)行轉(zhuǎn)移指令時,指令隊列寄存器內(nèi)容如何變化?【答】傳統(tǒng)的計算機(jī)一般按照取指令、指令譯碼/執(zhí)行指令的步驟工作。在 8086/8088中,指令的提取與執(zhí)行分別由總線接口部件BIU與執(zhí)行部件EU完成,8086/8088可以在取指令同時又可以執(zhí)行指令,這種并行工作方式有力的提高了CPU的工作效率。2.6 將兩數(shù)相加,即0100 1100力
4、口0110 0101 , CFPF、AF、ZF、SF、OF各為何值?【答】0100 1100+0110 0101=10110001CF=0, PF=1, AF=1, ZF=0, SF=1, OF=12.7 存儲器的邏輯地址由哪幾部分組成?存儲器的物理地址是怎樣形成的? 一個具有20位地址線的CPU其最大物理地址為多少?【答】存儲器的邏輯地址由段地址與段內(nèi)偏移地址組成。存儲器的物理地址:將16位段地址左移4位后加上16位段內(nèi)偏移地址,形成20位物理地址。一個具有 20位地址線的CPU其最大物理地址為220=1MB2.8 現(xiàn)有6個字節(jié)的數(shù)據(jù)分別為 11H, 22H, 33H, 44H, 55H,
5、66H,已知它們在存儲器中的物理地 址為400A5H-400AAH若當(dāng)前(DS = 4002H,請說明它們的偏移地址值。如果要從存儲器 中讀出這些數(shù)據(jù),需要訪問幾次存儲器,各讀出哪些數(shù)據(jù)?【答】由于:物理地址=400A5H=地址*16+偏移地址=40020H+偏移地址偏移地址=400A5+40020=85H從奇地址 400A5H中讀出:11H;從偶地址 400A6H讀出一個字:22H, 33H;從偶地址 400A8H 讀出一個字:44H, 55H;從偶地址 400AAH中讀出:66H。共讀4次。2.9 已知當(dāng)前數(shù)據(jù)段中存有如下圖所示的數(shù)據(jù),現(xiàn)要求將最后兩個字節(jié)改成ODH OAH請說明需給出的段
6、基值和偏移地址值,并說明其寫入過程?!敬稹繑?shù)據(jù)段段地址=150AH偏移地址=0004H°CPU的總線接口部件根據(jù)數(shù)據(jù)段寄存器的內(nèi)容150AH左移4位,在加上偏移地址 0004H,形成20位物理地址150A4H,由總線接口送出,選中物理 存儲單元150A4H 150A5H,數(shù)據(jù)ODH通過數(shù)據(jù)總線送入 150A4H,數(shù)據(jù)OAH通過數(shù)據(jù)總線送入 150A4H。2.10在8088/8086 中,邏輯地址 FFFF: 0001, 00A2: 37F和B800: 173F的物理地址分別是多少? 2.11在8088/8086中,從物理地址 388H開始順序存放下列三個雙字節(jié)的數(shù)據(jù),651AH, D
7、761H和007BH,請問物理地址 388H, 389H, 38AH, 38BH, 38CH 和38DH 6個單元中分別是什么數(shù)據(jù)?【答】物理地址388H38DH單元中的數(shù)據(jù)如下表:地址388H389H38AH38BH38CH38DH數(shù)據(jù)1AH65H61HD7H7BH00H2.12 8086CPU的形成三大總線時,為什么要對部分地址線進(jìn)行鎖存?用什么信號控制鎖存?【答】 為了確保CPU對存儲器和I/O端口的正常讀/寫操作,要求地址和數(shù)據(jù)同時岀現(xiàn)在地址總線和數(shù) 據(jù)總線上。而在 8086CPU中ADOAD15總線是地址/數(shù)據(jù)復(fù)用的,因此需在總線周期的前一部分傳 送岀地址信息,并存于鎖存器中,而用后
8、一部分周期傳送數(shù)據(jù)。8086CPU中是通過CPU送岀的ALE高電平信號來控制鎖存的。2.13段寄存器CS=1200H,指令指針寄存器IP=4000H,此時,指令的物理地址為多少 ?指向這一物理地址的 CS值和IP值是唯一的嗎?【答】此時,指令的物理地址為16000H;這一物理地址的CS值和IP值不是唯一的,例如:CS=1000H,IP=6000H 。2.14 80386最重要的技術(shù)特點(diǎn)是什么?【答】速度大大提高:時鐘達(dá) 12MHZ/16MHZ (2)尋址空間大大擴(kuò)展:4GB物理空間,64TB (64GGB) 虛擬空間,(3) 除了保持80286的實地址方式和保護(hù)方式外,增加了虛擬8086方式。
9、(4) 80386設(shè)置了轉(zhuǎn)換檢測緩沖器,大大加快了存儲器訪問速度。2.15 80386 的內(nèi)部有哪些部件?【答】80386功能部件包括總線接口部件BIU、指令預(yù)取部件IPU、指令譯碼部件IDU、指令執(zhí)行部件 EU存儲器管理部件 MMU即分頁部件PU與分段部件SUL2.16 80386 CPU 有幾種工作方式?【答】80386的實地址方式、80386的虛擬保護(hù)方式與虛擬8086方式。2.17 簡述80386 CPU的實地址方式特點(diǎn)?!敬稹?0386上電或復(fù)位時,處于實地址方式,主要為80386進(jìn)行初始化工作。特點(diǎn):(1)實地址方式采用類似8086體系結(jié)構(gòu),尋址機(jī)構(gòu)、存儲器管理與中斷處理機(jī)構(gòu)與80
10、86 一樣。(2)操作數(shù)默認(rèn)長度為16位,但允許訪問 80386的32位寄存器組,在使用時指令中要加上前綴以表示越權(quán)存取。(3)存儲器尋址空間最大1M字節(jié)。(4)實地址方式下,存儲器中保留兩個固定區(qū)域,一個為初始化程序區(qū):FFFF0FFFFFH另一個為中斷向量區(qū) 00000003FFH。(5)80386 具有4個特權(quán)級,實 地址方式下,程序在最高級(0級)上執(zhí)行。2.18 簡述80386的虛擬保護(hù)方式特點(diǎn)?!敬稹?0386的存儲器的虛擬保護(hù)方式: 80386上電或復(fù)位后,先進(jìn)入實地址方式完成初始化,然后轉(zhuǎn)到保護(hù)方式。在保護(hù)方式,虛存空間可達(dá)4GB X 16K =64MMB=64GB程序員借助于
11、存儲管理部件(MMU)功能將磁盤等存儲設(shè)備映射到內(nèi)存,使邏輯地址大大超過實際物理地址空間。在保護(hù)方式,可以使用80386的4級保護(hù)功能,為多任務(wù)操作系統(tǒng)提供支持。2.19虛擬8086方式有什么特色?為什么要設(shè)置這種方式?【答】(1)可以執(zhí)行8086的應(yīng)用程序。(2)段寄存器的用法和實地址方式時一樣,即段寄存器內(nèi)容 左移4位加上偏移量為線性地址。(3)存儲器尋址空間為一兆字節(jié),但可以使用分頁方式,將一兆字節(jié)分為256個頁面,每頁4K字節(jié)。在80386多任務(wù)系統(tǒng)中,可以使其中一個或幾個任務(wù)使用 虛擬8086方式。此時,一個任務(wù)使用的全部頁面可以定位于某個物理地址空間,另一個任務(wù)的頁 面可以定位于其
12、他區(qū)域,即每個虛擬8086方式下的任務(wù)可以轉(zhuǎn)換到物理存儲器的不同位置。(4)虛擬8086方式中,程序在最低特權(quán)級(3級)上運(yùn)行,因此,80386指令系統(tǒng)中的一些特權(quán)指令不 能使用。虛擬8086方式是80386中很重要的設(shè)計特點(diǎn),可以使大量的 8086軟件有效的與 80386保護(hù)方式下的軟件并發(fā)運(yùn)行。2.20 80386 有哪兩種模擬 8086的方式?【答】80386有兩種模擬8086的方式,一種是實地址方式,一種是虛擬8086方式。80386上電或復(fù)位時,處于實地址方式。在保護(hù)方式下,可以通過軟件切換到虛擬8086方式,運(yùn)行8086程序。2.21 80386采用幾種描述符表?這些表的設(shè)置帶來什
13、么優(yōu)點(diǎn)?【答】80386共設(shè)計三中描述符表即:全局描述符表,局部描述符表,中斷描述符表。采用描述符表帶來如下三方面的優(yōu)點(diǎn):1 可以大大擴(kuò)展存儲空間;2 .可以實現(xiàn)虛擬存儲;3.可以實現(xiàn)多任務(wù)隔離。2.22 80386 在3種工作方式下,"段"的長度有什么差別 ?實地址方式,段的大小固定64K字節(jié)。保護(hù)方式,段的大小是可以選擇的,從1字節(jié)到4千兆字節(jié)。虛擬8086方式,對程序員來說,段長度固定為64K。2.23 Intel86系列CPU是從哪一種芯片開始采用RISC技術(shù)的?你能說說RISC技術(shù)最重要的特點(diǎn)和優(yōu)點(diǎn)嗎?【答】80486是首次采用RISC技術(shù)的。80486把8038
14、6和浮點(diǎn)運(yùn)算協(xié)處理器 80387及8KB的超高速緩存 器集中到一個芯片中,且支持二級Cache。80486能在一個時鐘周期執(zhí)行一條指令。2.24 80486 和80386相比,有什么技術(shù)特點(diǎn) ?【答】(1) 80486是首次采用 RISC技術(shù)的;(2)采用片內(nèi)高速緩存和片內(nèi)浮點(diǎn)運(yùn)算協(xié)處理器;(3)80486采用一種突發(fā)式總線方式實現(xiàn)CPU和內(nèi)存的高速數(shù)據(jù)交換;(4) 80386可以模擬多個8086來實現(xiàn)多任務(wù)功能。2.25 Pentium有哪些技術(shù)特點(diǎn)?你認(rèn)為在Pentium基礎(chǔ)上主要應(yīng)從哪幾個方面可再作改進(jìn)?【答】 采用超標(biāo)量雙流水線結(jié)構(gòu),每個流水線包含5個步級。 內(nèi)部采用2個彼此獨(dú)立的8K
15、B數(shù)據(jù)高速緩存,這兩個高速緩存可以同時被訪問。Pentium內(nèi)部數(shù)據(jù)總線為 32位,但是cpu和內(nèi)存進(jìn)行數(shù)據(jù)交換的外部數(shù)據(jù)總線為64位,使一個總線周期的數(shù)據(jù)傳輸量提高一倍。 采用36位地址總線,擴(kuò)展了尋址空間。對mov、push、dec、inc等常用指令不用微程序而用硬件實現(xiàn);采用分支預(yù)測技術(shù)提高流水線效能。采用分支預(yù)測技術(shù)提高流水線效能。浮點(diǎn)運(yùn)算執(zhí)行過程分為8個流水步級。pentium也存在一些缺點(diǎn),如功耗大,達(dá)15w,浮點(diǎn)運(yùn)算功能仍低于一些RISC處理器。2.26選擇題(1) 80386共有()個弓I腳信號,采用()封裝。A . 128,PGA B . 132,LCC C . 132,PG
16、A D . 128,LCC【答】C80386 內(nèi)部可以分為()個部件。A . 8B. 6 C . 4 D. 2【答】B(3) 80386有()條地址信號線和()條數(shù)據(jù)信號線A.32, 32B.32,24 C . 24,32 D.20, 32【答A(4)外部CLK2的頻率是80386內(nèi)部時鐘信號頻率的()倍 .A.5B.4C. 3D.2【答D(5)80386的HLDA信號是對()的應(yīng)答信號A . HOLD B . BUSRQ C . INTR D . DMARQ 【答】A(6)80386的流水線方式請求信號是()。A . ND # B . NC#C . NB # D . NA #【答】D(7)8
17、0386的執(zhí)行部件可分為()子部件。A .控制部件B .數(shù)據(jù)部件C .保護(hù)測試部件D. A 和BE. B 和 C F. A .B和 C答 F(8)80386 在保護(hù)模式下工作時,可以有()個特權(quán)級A . 5B. 4 C . 3 D. 2【答B(yǎng)習(xí)題三8086指令系統(tǒng)主要內(nèi)容:8086指令系統(tǒng)。主要介紹8086的基本數(shù)據(jù)類型、尋址方式和指令系統(tǒng),重點(diǎn)掌握8086 指令系統(tǒng)的尋址方式、堆棧操作指令、算術(shù)運(yùn)算指令及其對標(biāo)志位的影響,串操作指令,控制傳送指令。3.1下面這些指令哪些是正確的?哪些是錯誤的?如是錯誤的,請說明原因。XCHGCS,AX()MOVBX,1000()PUSHCS()POPCS()
18、INBX,DX()3.2單選題:(1)執(zhí)行下面指令序列后,結(jié)果是()。MOV AL ,82HCBWA、 AX=0FF82HB、AX=8082HC、AX=0082HD、 AX=0F82H【答A(2)與 MOV BX,OFFSET VAR指令完全等效的指令是()。A、MOVBX,VARB、LDS BX,VARC、LESBX,VARD、LEA BX,VAR【答】D(3)編寫分支程序,在進(jìn)行條件判斷前,可用指令構(gòu)成條件,其中不能形成條件的指令有()。A、 CMPB、SUBC、ANDD、MOV【答】D(4)下面指令執(zhí)行后,改變 AL寄存器內(nèi)容的指令是()。A、TEST AL ,C、CMP AL ,【答】
19、D(5)設(shè) DH=10H,執(zhí)行02HOR AL,ALAND AL,BLNEG DH指令后,正確的結(jié)果是 ()?!敬稹緿A、DH=10H CF=1C、DH=10H CF=0(6)設(shè) DS=8225H , DI=3942H ,A、 85B92HDH=0F0H CF=ODH=0F0H CF=1指令 NEG BYTE PTRDI操作數(shù)的物理地址是)。B、 86192HC、 BB690HD、12169H0TAL。F面程序段正確的是)。A、MOVJSSHRAL , BUFK1AL , 1K1AL , 0K1 :JNCMOVB、MOVAL , BUFANDAL , 11JNZK2MOVAL , 0K2 :C
20、、MOVAL , BUFTESTAL , 81HJNZK3MOVAL , 0K3 :D、MOVAL , BUFJNPK4TESTAL , 80HJNZK4MOVAL , 0K4 :執(zhí)行速度最快的是(【答】A(7)檢查BUF的內(nèi)容是否為正偶數(shù),如是正偶數(shù),)?!敬稹緾(8)下列指令中,A、 MOVAX,100MOVAX,BX【答】CC、 MOVAX,BXMOVAX,BX+BP3.3 已知(DS) = 091DH , (SS) = IE4AH , (AX ) = 1234H , ( BX ) = 0024H , ( CX) = 5678H , (BP) = 0024H , ( SI) = 0012
21、H , ( DI ) = 0032H , : 09226 = 00F6H , : 09228 =1E40H , :1E4F6 =091DH,試求單獨(dú)執(zhí)行下列指令后的結(jié)果?(1) MOV CL , 20H BXSI;【答】由于源操作數(shù)有效地址EA=20H+0024H+0012H=0056H,其物理地址 PA=DS*16+EA=091DH*16+56H=09226H, 因此(CL) = F6H(2) MOV BPDI ,CX ;【答】由于目的操作數(shù)有效地址EA= 0024H + 0032H=0056H,目的操作數(shù)物理地址 PA= SS*16+EA=1E4A0H+0056H=1E4F6H, 因此1E
22、4F6=5678H(3)LEAMOVBX , 20H : BX SIAX , 2BX答第-條指令:源操作數(shù)物理地址PA = 091D0H+(20+0024H+0012H)=09226H, 因此(BX ) =0056H第二條指令:源操作數(shù)物理地址PA = 091D0H+(2+0056)=09928H, 因此(AX ) =1E40H(4)LDSSI , BXDIMOVSI , BX答第-條指令:源操作數(shù)物理地址PA=091D0H+(0024H+0032H)=09226H因此(SI)= 00F6H, (DS)=1E40H第-條指令:目的操作數(shù)物理地址PA= 1E400H+00F6H=1E4F6H因此
23、1E4F6H單元的內(nèi)容為 0024H,即1E4F6H=0024H(5)XCHGCX , 32HBXXCHG 20BXSI, AX【答】同理可得: (CX ) = 00F6H (AX ) = 00F6H , 09226H= 1234H3.4 8086 CPU執(zhí)行如下指令后MOVAL ,01100100BSUBAL ,58H;(AL)=0CH,AF=1,CF=0DAS;(AL)=06,AF=1,CF=0【答】 首先用TD調(diào)試驗證上面的結(jié)果;自己定義兩個數(shù)據(jù),重新驗證,寫岀結(jié)果。3.5 設(shè)(IP) = 3D8F H , (CS) = 4050H , (SP)= 0F17C H,當(dāng)執(zhí)行 CALL 20
24、00 : 0094H 后,試求岀 IP、CS、SP、:SP、:SP+ 1 :SP+ 2 和SP+3的內(nèi)容?【答】(IP)=0094H ,( CS)=2000H,(SP)=F178HSP=8FH ,SP+1=3DH ,SP+2=50H, SP + 3=40H,SP+3=40H3.6設(shè)(DS) = 2000H , ( BX ) = 1256H , ( SI) = 528FH 264E5H = 2450H,執(zhí)行下述指令,TABLE的偏移量=20A1H , :232F7H =3280H ,(1) JMP BX; IP= 1256H(2) JMP TABLE : BX ; IP= 3280H(3) JM
25、P : BX SI; IP= 2450H3.7分別用一條語句實現(xiàn)下述指明的功能(1 )棧頂內(nèi)容彈岀送字變量DI。(POPDI )(2)雙字變量 AYD存放的地址指針?biāo)?ES和SIo(LESSI , AYD )(3)不允許中斷即關(guān)中斷。(CLI )(4)子程序返回調(diào)用程序。(RET )(5) AX的內(nèi)容加1,要求不影響 CF o(INCAX )(6) BX的內(nèi)容加1,要求影響所有標(biāo)志位。(ADDBX, 1 )(7)若操作結(jié)果為零轉(zhuǎn)向標(biāo)號GOON o(JZGOON )3.88086/ 8088用什么途徑來更新CS和IP的值?【答執(zhí)行CALL、JMP、INT指令,可以改變 CS和IP中的值,即改變程
26、序走向。3.9字節(jié)擴(kuò)展指令和字?jǐn)U展指令用在什么場合?舉例說明?!敬稹啃枰獙Х枖?shù)字節(jié)擴(kuò)展為字時,要預(yù)先執(zhí)行CBW指令。需要對帶符號數(shù)字?jǐn)U展為雙字時,預(yù)先執(zhí)行CWD。AX,-503BX,267【答】例:求-503/267=?,將商存1000H單元.MOV MOV CWD IDIV3.10 設(shè) DS=2100H,SS=5200HMOVWORDMOVWORDMOV HLT1000H,AX3.11以下是格雷碼的編碼表BX=1400H , BP=6200HPTR BX, 2000說明下面兩條指令所進(jìn)行的具體操作PTRBP,00000 , 1 0001 , 2 00113 001050111,6 010
27、1,70100請用換碼指令和其他指令設(shè)計一個程序段,實現(xiàn)格雷碼往81100ASCII的轉(zhuǎn)換。200001101101【答】格雷碼ASCII 碼000030H000131H001033H001132H010037H010136H011034H011135H10000100101010010110110038H110139HTABLE SEGMENTTAB_DA DB 30H,31H,33H,32H,37H,36H,34H,35H,0,0DB 0,0,38H,39HGRADB 05HASCII_DA DB ?TABLE ENDSCODE SEGMENTASSUME CS:CODE,DS:TABLE
28、START: MOV AX,TABLEMOVDS,AXMOVBX,OFFSET TAB_DAMOVAL,GRAXLATMOV ASCII_DA,ALCODE ENDSEND START3.12 8086狀態(tài)標(biāo)志寄存器中,作為控制用的標(biāo)志位有(3 )個,其中,不可用指令操作的是 (DF、IF、TF)3.13設(shè)當(dāng)前的SP=1000H,執(zhí)行PUSHF指令后,SP=( 0FFE H ),若改為執(zhí)行INT 20H指令后,貝U SP= (0FFA H )。【答】執(zhí)行 PUSHF指令后,SP= (0FFE H )。執(zhí)行INT 20H指令后,則 SP= ( 0FFA H )。3.14設(shè)當(dāng)前 SS=2010H,
29、SP=FE00H,BX=3457H,計算當(dāng)前棧頂?shù)牡刂窞槎嗌???dāng)執(zhí)行 PUSH BX 指令 后,棧頂?shù)刂泛蜅m?2個字節(jié)的內(nèi)容分別是什么?【答】當(dāng)前棧頂指針 (SP)=2FF00H,物理地址=20100H+FE00H=2FF00H當(dāng)執(zhí)行PUSH BX 指令后,棧頂指針(SP) =FE00-2=FDFEH,棧頂物理地址=2FDFEH,棧頂 2個字節(jié)的內(nèi)容分別 57H,34H。3.15 HLT指令用在什么場合?如 CPU在執(zhí)行HLT指令時遇到硬件中斷并返回后,以下應(yīng)執(zhí)行哪條指 令?【答】HLT 用在使 CPU 處于暫停狀態(tài)而等待硬件中斷的場合。 在執(zhí)行HLT指令遇到硬件中斷并返回后將執(zhí)行HLT后面
30、的一條指令。3.16為什么用増量指令或減量指令設(shè)計程序時,在這類指令后面不用進(jìn)位標(biāo)志作為判斷依據(jù)?【答】増量指令或減量指令不影響進(jìn)位標(biāo)志CF。3.17用普通運(yùn)算指令執(zhí)行 BCD碼運(yùn)算時,為什么要進(jìn)行十進(jìn)制調(diào)整?具體講,在進(jìn)行BCD碼的加、減、乘、除運(yùn)算時,程序段的什么位置必須加上十進(jìn)制調(diào)整指令?【答】在BCD碼中,采用4位二進(jìn)制數(shù)對一個十進(jìn)制數(shù)的編碼,只允許0 9這10個數(shù)字岀現(xiàn),但CPU運(yùn)算結(jié)果一般會超過此范圍,因此要進(jìn)行十進(jìn)制調(diào)整。進(jìn)行加、減法或乘法運(yùn)算時,調(diào)整指令必須 緊跟在算術(shù)指令后面,在進(jìn)行除法運(yùn)算時,調(diào)整指令放在除法指令之前。3.18中斷指令執(zhí)行時,堆棧的內(nèi)容有什么變化?中斷處理子
31、程序的人口地址是怎樣得到的?【答】中斷指令執(zhí)行時,堆棧內(nèi)容變化如下:標(biāo)志寄存器被推入堆棧,且SP減2,然后CPU將主程序的下一條指令地址即斷點(diǎn)地址推入堆棧,即段值CS推入堆棧且SP減2,偏移量推入堆棧,且 SP減2。中斷處理子程序的入口地址即中斷向量,對應(yīng)的中斷類型號的4倍即為中斷向量地址,在該地址處的4個字節(jié)內(nèi)容,高地址單元兩個字節(jié)為中斷入口地址的段地址,低地址單元兩個字節(jié)為中斷 入口地址的偏移地址。3.19中斷返回指令I(lǐng)RET和普通子程序返回指令 RET在執(zhí)行時,具體操作內(nèi)容什么不同?【答】IRET從堆棧中依次彈岀斷點(diǎn)處指令指針I(yè)P、代碼段CS內(nèi)容與標(biāo)志寄存器的值,而RET從堆棧中依次彈出
32、斷點(diǎn)處指令指針I(yè)P值、代碼段CS內(nèi)容,不需要彈出標(biāo)志寄存器的值。3.20將存放在0A00H單元和0A02H單元的兩個無符號數(shù)相乘 ,結(jié)果存放在地址為 0A04H開始的單元中。 【答】參考程序:MOVAL,0A00HMOVBL,0A02HMULBLMOV0A04,AX3.21編程序?qū)X中數(shù),最高位保持不變,其余全部左移4位。【答】參考程序:MOVANDBX, AXBX ,8000HMOVCL, 4SHLAX, CLANDAX,7FFFHORAX, BX3.22將0400H單元中的數(shù),低4位置零,高4位保持不變?!敬稹繀⒖汲绦颍篗OVAL, 0400HANDAL, 0F0HMOV0400H, A
33、L3.23將BX中的數(shù),對高位字節(jié)求反,低位字節(jié)保持不變?!敬稹繀⒖汲绦颍篘OTBH3.24檢測Bx中第13位(D13),為0時,把AL置0,為1時,把AL置1。【答】參考程序:TESTBX,0010 0000 0000 0000BJZZEROMOVAL,01HHLTZERO:MOVAL,0HLT3.25利用字串操作指令將1000H10FFH 單元全部清零?!敬稹繀⒖汲绦颍篊LDMOVDI,1000HMOVCX,100HMOVAL,0REPSTOSB3.26從1000H開始,存放有200個字節(jié),要查岀字符#(ASCII碼為23H),把存放第一個#的單元地址送入BX中?!敬稹繀⒖汲绦颍篊LDMO
34、VDI,1000HMOVCX,200MOVDX,CXMOVAL,23HREPNZSCASBJZFINDJMPNOFOUNDFOUND: DECDIMOVBX,DINOFOUND:HLT3.27編程計算(X+Y)*10)+Z)/X, X、Y、Z都是16位無符號數(shù),結(jié)果存在 RESULT開始的單元。【答】參考程序:MOVAX,XADDAX,YMOVMULBX,0AHBXADDAX,ZADCMOVDX,0HBX,XDIVBXMOVRESULT,AXMOVHLTRESULT+2,DX3.28用簡單指令編程求-3/2=?,將商存DL,余數(shù)存DH單元。用TD調(diào)試后,寫岀DL,DH的內(nèi)容【答】參考程序:MO
35、VAL,-3CBWMOVBL,2IDIVBLMOVDL,ALMOVDH,AHHLT習(xí)題四 匯編語言程序設(shè)計主要內(nèi)容:匯編語言程序設(shè)計。主要介紹匯編語言程序的設(shè)計方法與編程原理,重點(diǎn)掌握算術(shù)運(yùn)算程序、字符串處理程序、碼制轉(zhuǎn)換程序、子程序設(shè)計程序、常用DOS和BIOS功能調(diào)用程序、匯編語言常用偽指令。4.1分析執(zhí)行下列指令序列后的結(jié)果:1)MOVAX,1234HMOVBX,OOFFHANDAX,BX【答】(AX)=0034H2)MOVAL,01010101BANDAL,00011111B;(AL)=00010101BORAL,11000000B;(AL)=11010101BXORAL,000011
36、11B;(AL)=11011010BNOT AL【答】(AL)=00100101B3)MOVDL,05HMOVAX,0A00HMOVDS,AXMOVSI,0HMOVCX,0FHAGAIN:INCSICMP SI,DL LOOPNE AGAINHLT本程序?qū)崿F(xiàn)了什么功能?【答】在以0A001H開始的15個單元中查找 05H。4)MOVAX,DSEGADDRMOVDS, AXMOVES,AXMOVSI, OFFSET B1ADDRMOVDI,OFFSET B2ADDRMOVCX,NCLDREPMOVSBHLT答將 B1ADDR中N個字節(jié)數(shù)據(jù)傳送到5)MOVAX, 0HMOVDS,AXMOVES,
37、AXMOVAL,05HMOVDI,0A000HMOVCX,0FHCLD本程序?qū)崿F(xiàn)了什么功能?AGAINB2ADDR開始的15個存儲單元 。開始的15個單元中查找字節(jié)型數(shù)據(jù)05H,用條件循環(huán) LOOPNZ,控制數(shù)據(jù)05H的查找。4.2閱讀程序1).CLDLEADI, 0100HMOVCX, 0080HXORAX, AXREPSTOSWOA000H本程序?qū)崿F(xiàn)了什么功能?I將DS中起始地址為 0100H的128個字節(jié)單元清零?!敬稹緼GAIN:SCASBLOOPNE HLT本程序?qū)崿F(xiàn)了什么功能? 【答從地址MOVDX , 3F08HMOVAH , 0A2HMOVCL , 4SHLDX , CL;(D
38、X)=F080HMOVBL , AHSHLBL , CL;(BL)=20HSHRBL , CL;(BL)=02HORDL , BL;(DL)=82H【答將DX中的低4位數(shù)據(jù)8H分離岀來,將 AH中的低4位數(shù)據(jù)2H分離岀來,DL。4.4 已知程序段如下:MOVAX , 1234HMOVCL , 4ROLAX , CLDECAXMOVCX, 4MULCX試問:(1)每條指令執(zhí)行后,AX寄存器的內(nèi)容是什么?(2 )每條指令執(zhí)行后值分別是什么?(3)程序運(yùn)行結(jié)束時,AX及DX寄存器的值為多少?答MOVAX , 1234H;(AX)=1234H, CF=SF=ZF=0MOVCL , 4合并為 82H存放
39、在答4.3試分析下列程序完成什么功能?, CF, SF 及 ZF 的MOVAL, 08HSALAL,01H;(AL)=00010000HMOVBL, ALMOVCL ,02HSALAL,CL;(AL)=01000000HADDAL,BL;(AL)=01010000H本程序?qū)崿F(xiàn)了什么功能? 將AL中的內(nèi)容乘以102).ROLAX,CL;(AX)=2341H ,CF=1,SF=ZF=0DECAX;(AX)=2340H, CF=1,SF=ZF=0MOVCX,4MULCX;(AX)= 8000H ,CF=ZF=0,SF=1,DX=04.5試分析下列程序段:ADDAX,BXJNCL2SUBAX,BXJN
40、C L3JMP SH0RTL5如果AX、BX的內(nèi)容給定如下:AXBX(1)14C6H80DCH(程序轉(zhuǎn)向L2)(2)B568H54B7H(程序轉(zhuǎn)向SHORTL5 )問該程序在上述情況下執(zhí)行后,程序轉(zhuǎn)向何處?【答】(1)程序轉(zhuǎn)向L2。(2)程序轉(zhuǎn)向 SH0RTL5。4.6以下為某個數(shù)據(jù)段,試問各個變量分別占多少字節(jié),該數(shù)據(jù)段共占多少字節(jié)?DATASEGMENTVAR1DW 9;2字節(jié)VAR2DD 10 DUP( ? ),2;44字節(jié)VAR3DB 2 DUP( ?,10 DUP( ?);22字節(jié)VAR4DB ' HOW ARE YOU'11字節(jié)DATAENDS【答】該數(shù)據(jù)段共占 7
41、9字節(jié)。4.7下列語句在存儲器中分別為變量分配多少字節(jié)空間?并畫岀存儲空間的分配圖VAR1DB 10, 2;2字節(jié)VAR2DW 5DUP (?),0;12字節(jié)VAR3DB ' HOW ARE YOU ?', $'13字節(jié)VAR4DD -1,1,0;2字節(jié)Var1Var2Var3Var410?FFH2?UP 00H?O00H?Y00H?01H?E00H?R00H?A00H?r 00H?W00H0O00H0H00H$4.8 編寫一段程序,比較兩個5字節(jié)的字符串 OLDS和NEWS,若相同,在RESULT置0,否則置0FFH 【答】參考程序:OLDSDB 1,2,3,4,5N
42、EWSDB 1,2,3,4,5RESULTDB ?MOVSI,OFFSETOLDSMOVDI,OFFSETNEWSMOVCX,10CLDREPCMPSBJNZNOEQU;串不相等轉(zhuǎn)MOVAL,0JMPOUTPTNOEQU:MOVAL,0FFHOUTPT:MOVRESULT,ALSTOP:JMPSTOP4.9編程求和Y=A1+ A2 +.+ A100 。其中 Ai為字節(jié)變量【答】參考程序:DATASEGMENTTABLEDW12, 3, 45,.?YALYAHDATADWDWENDSMIANPROCFARPUSHDSMOVAX, 0PUSHAXMOVAX, DATAMOVDS, AXMOVDX,
43、0XORAX, AXMOVBX, OFFSET TABLEMOVCX, 4CLCLP:ADDAX, BXJNCDONINCDXCLCDON:INCBXINCBXLOOPLPMOVYAL,AXMOVYAH,DXMAINENDPCODEENDSEND START內(nèi)存中以;清 AX;求和;指向下一個數(shù);未加完,繼續(xù);存和FIRST和SECOND開始的單元中分別存放著兩個16位組合的十進(jìn)制(BCD碼)數(shù),低位在,并存到以THIRD開始的單元。答參考程序:1325+9839=?DATASEGMENTFIRSTDB05H,02H,03H,01H ;SECOND DB09H,03H, 08H,09H;THI
44、RD DB20 DUP (?)DATAENDSSTACKSEGMENTST1DB100DUP ( ' SA')TOP1EQUST1 LENGTH ST1STACKENDSCODESEGMENTASUMMECS:CODE,DS:DATA,SS:STACKMAINPROCFARSTART: MOVAX, DAT;初始化數(shù)據(jù)段MOVDS, AXMOVAX, STACK;初始化堆棧段MOVSS, AXMOVAX, TOP1MOVSP, AXMOVCX, 4;計算4次MOVBX, OFFSET DAT1;取數(shù)據(jù)地址4.10前。編程序求這兩個數(shù)的組合的十進(jìn)制和MOVSI , OFFSET
45、DAT2;取數(shù)據(jù)地址MOVDI , OFFSET SUM;取結(jié)果地址MOVAH, OOH;將暫存標(biāo)志的AH清0DON1:MOVAL, BX;取第一個數(shù)SAHF;將AH中的標(biāo)志送標(biāo)志寄存器ADCAL, DI;與第二個數(shù)帶進(jìn)位加AAA;十進(jìn)制校正LAHF;將標(biāo)志寄存器內(nèi)容送 AHORAL, 30H;計算值拼成ASCII碼MOVDI, AL;存結(jié)果的ASCII碼INCBX;指向第一個數(shù)的下一位INCSI;指向第二個數(shù)的下一位INCDI;指向結(jié)果單元的下一位LOOPDON1;未計算完,繼續(xù)ANDAH, 01H;將最高位的進(jìn)位標(biāo)志送 AHORAH, 30H;最高位的進(jìn)位位拼成ASCII碼MOVDI, A
46、H;存結(jié)果的最高位MOVAH, 02H;調(diào)用DOS的02H功能顯示MOVCX, 05H;顯示數(shù)據(jù)的位數(shù)DON2:MOVDL,DI;顯示數(shù)據(jù)送DLINT21H;顯示DECDI;顯示數(shù)據(jù)所在存儲單元加一LOOPDON2;未顯示完,繼續(xù)MOVAH, 4CH;返回DOSINT21HRETMAINENDPCODEENDSENDSTART4.11試編程序,統(tǒng)計由40000H開始的16K個單元中所存放的字符“A “的個數(shù),并將結(jié)果存放在中?!敬稹繀⒖汲绦駾XDATASEGMENTDATA1DB'DFASFAAAFDFAAFFFA'COUNT EQU$-DATA1DATAENDSSTACKSE
47、GMENTSTADB 100DUP(?)TOPEQU LENGTHSTASTACKENDSCODESEGMENTASSUME CS:CODE,DS:DATA,SS:STACKBEGIN:MOVAX,DATAMOVDS,AXAX,STACK SS,AX AX,TOP SP,AX CX,COUNT DX,0 SI,DATA1 BL,'A' SI,BL OTHER DXMOVMOVMOVMOVMOVMOVLEAMOVNEXT :CMPJNZINCOTHER:INC SILOOP NEXTCODEENDSBLOCKDB -1,-3,5,6,-2,0,20,10PLUS_DDB8 DUP(?);正數(shù)緩
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 城市交通需求預(yù)測咨詢重點(diǎn)基礎(chǔ)知識點(diǎn)
- 應(yīng)對工作中突發(fā)事件的預(yù)案計劃
- 資源共享在班級工作中的重要性計劃
- 搶先獲取2025年VB考試核心試題及答案
- 倉庫成本控制與管理策略計劃
- 2024年惠州市博羅縣建工集團(tuán)有限公司招聘真題
- 班級輪值制度的設(shè)計與實施計劃
- 2024年安徽省農(nóng)業(yè)農(nóng)村廳下屬事業(yè)單位真題
- 2024年河南循環(huán)科技產(chǎn)業(yè)集團(tuán)招聘筆試真題
- 2024年赤峰中色鋅業(yè)有限公司招聘筆試真題
- 電站運(yùn)行考試題及答案
- 農(nóng)產(chǎn)品短視頻營銷試題及答案
- 2025-2030中國靜脈曲張治療行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- GB/T 12008.7-2025塑料聚氨酯生產(chǎn)用聚醚多元醇第7部分:堿性物質(zhì)含量的測定
- 封隔器加工合同協(xié)議
- 2025年全國國家版圖知識競賽(中小學(xué)組)題庫
- 漢中漢源電力招聘試題及答案
- 批評不可怕課件
- 智能建造基礎(chǔ)考試題及答案
- 金蝶K3-ERP系統(tǒng)管理制度
- 廚房用電安全知識
評論
0/150
提交評論