




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、第1章習題和解答15.將下列十進制數(shù)分別轉(zhuǎn)化為二進制數(shù)、十六進制數(shù)和 BCD 碼。(1) 15.32=(0000 1111.0101 0001)2=(0F.51)i6=(0001 0101.0011 0010)BCD(2) 325.16=(0001 0100 0101.0010 1000)2=(145.28)16=(0011 0010 0101.0001 0110)BCD(3) 68.31=(0100 0100.0100 1111)2=(44.4F)16=(0110 1000.0011 0001)BCD(4) 214.126=(1101 0110.0010 0000)2=(0D6.20)16=
2、(0010 0001 0100.0001 0010 0110)BCD16.將下列二進制數(shù)分別轉(zhuǎn)化為十進制數(shù)和十六進制數(shù)。(1) 10110101= 181=0B5H(2) 1100101 仁 203=0CBH(3) 10101.1001= 21.5625=15.9 H(4) 101101.0101= 45.3125=2D.5H17.將下列十六進制數(shù)分別轉(zhuǎn)化為二進制數(shù)、十進制數(shù)。(1) FAH=1111 1010B=250(2) 12B8H=0001 0010 1011 1000B=4792(3) 5A8.62H=0101 1010 1000.0110 0010B=1448.3828125(4)
3、 2DF.2H=0010 1101 1111.0010B=735.12518.若 X = -107, Y = + 74 按 8 位二進制可寫出:X補=95H ,Y補=4AH , X +Y補=0DFH,X-Y1 補=4BH。19.X = 34AH , Y = 8CH。問:有三位和兩位十六進制數(shù) X 和 Y ,(1) 若 X , Y 是純數(shù)(無符號數(shù)),則:X+Y = 3D6H ; X-Y = 2BEH。(2) 若 X , Y 是有符號數(shù),則:X+Y = 2D6 H ; X-Y=3BEH。20.已知 X = 85, Y = 76(均為十進制數(shù)),求-85補,卜 76補。并利用補碼的加、減法運算規(guī)則
4、計算X-Y補,-X+Y補,-X-Y補。結(jié)果的各機器數(shù)及其真值請用十六進制表示,并由運算過程中的標志位OF 判斷結(jié)果是否溢出。答:X # =85補=55H,Y # =76補=4CH , -X # =-85補=0ABH, -Y補=卜 76補=0B4HX-Y補=X補 +-Y補=55H+B4H=09H, OF=0-X+Y補=-X補+Y補=ABH+4CH=0F7H, OF=0-X-Y # =-X補+-Y # =ABH+B4H=5FH, OF=121.(1)設X補=10101010B,則1/2X補=1/2X補=11010101B(2)設X補=11010100B,則-1/4X補=1/4 兇 補補=11110
5、101補=00001011B第2章習題和解答1. 8086 是多少位的微處理器?為什么?答:8086 是高性能的第三代微處理器,是Intel 系列的 16 位微處理器。2. EU 與 BIU 各自的功能是什么?如何協(xié)同工作?答:EU 其主要功能是執(zhí)行命令。BIU 其主要功能是負責完成 CPU 與存儲器或 I/O 設備之間的數(shù)據(jù)傳送。 總線接口部件 BIU和執(zhí)行部件 EU 并不是同步工作的,兩者的動作管理遵循如下原則:每當 8086 的指令隊列中有 2 個空字節(jié),BIU 就會自動把指令取到指令隊列中。而同時 EU 從指令隊列取出一條指令,并用幾個時鐘周期去分析、 執(zhí)行指令。 當指令隊列已滿,而且
6、 EU 對 BIU 又無總線訪問請求時, BIU 便進入空閑狀態(tài)。3. 8086/8088 微處理器內(nèi)部有那些寄存器,它們的主要作用是什么?答:8086CPU 內(nèi)有 14 個 16 位的寄存器。其中有 4 個 16 位通用寄存器 AX、BX、CX、DX,2 個 16 位指 針寄存器 SP、BP,2 個 16 位變址寄存器 SI、 DI, 4 個 16 位段寄存器 CS、 DS、 SS、 ES, 1 個 16 位指令 指針寄存器 IP 及 1 個 16 位標志寄存器 FLAGS。寄存器是有限存貯容量的高速存貯部件,它們可用來暫存指令、數(shù)據(jù)和位址。4. 8086 對存儲器的管理為什么采用分段的辦法
7、?答:8086 CPU 有 20 位地址總線,它可尋址的存儲空間為1MB。而 8086 指令給出的地址編碼只有16 位,指令指針和變址寄存器也都是16 位的,所以 CPU 不能直接尋址 1 MB 空間,為此采用分段管理。5. 在 8086 中,邏輯地址、偏移地址、物理地址分別指的是什么?具體說明。答:邏輯地址=物理地址:偏移地址;偏移地址=相對于段起始地址的距離;物理地址=段地址*10H+偏移地址6. 給定一個存放數(shù)據(jù)的內(nèi)存單元的偏移地址是20C0H,(DS)=0C00EH,求出該內(nèi)存單元的物理地址。答: 物理地址=段地址*10H+偏移地址=0C00E0H+20C0H=0C21A0H7. 80
8、86/8088 為什么采用地址/數(shù)據(jù)引線復用技術?答:8086/8088 CPU 具有 40 條引腳,采用分時復用地址數(shù)據(jù)總線,從而使 8086/8088 CPU 用 40 條引腳 實現(xiàn) 20 位地址、16 位數(shù)據(jù)、控制信號及狀態(tài)信號的傳輸。8. 8086 與 8088 的主要區(qū)別是什么?答:8086 有 16 位數(shù)據(jù)線,8088 有 8 位數(shù)據(jù)線。9. 怎樣確定 8086 的最大或最小工作模式? 答:8088/8086CPU 的二口二引腳固定接+5V 時,CPU 處于最小模式下,CPU 處于最大模式下。10. 8086 被復位以后,有關寄存器的狀態(tài)是什么?微處理器從何處開始執(zhí)行程序?答:復位
9、信號輸入之后,CPU 結(jié)束當前操作,并對處理器的標志寄存器、IP、DS、SS、ES 寄存器及指令隊列進行清零操作,而將 CS 設置為 0FFFFH。11. 8086 基本總線周期是如何組成的?各狀態(tài)中完成什么基本操作?答:一個基本的總線周期由4 個 T 狀態(tài)組成,我們分別稱為 T1-T44 個狀態(tài),在每個 T 狀態(tài)下,CPU 完成不同的動作。y引腳固定接地時,Ti狀態(tài):根據(jù) 10/M 確定對存貯器或 I/O 操作,20 位地址AAi9信號有效,地址鎖存信號 ALE 有效, 給出 DT/R 信號控制 8286 數(shù)據(jù)傳輸方向。T2狀態(tài):高四位地址/狀態(tài)線送出狀態(tài)信息 SS6,低 16 位地址/數(shù)據(jù)
10、線浮空,為下面?zhèn)魉蛿?shù)據(jù)準備;WR 或 RD 有效,表示要對存貯器/I/O 端口進行讀或?qū)懀?。二;有效,使得總線收發(fā)器(驅(qū)動器)可以傳輸數(shù)據(jù)。T3狀態(tài):從存貯器或者 I/O 端口讀出的數(shù)據(jù)送上數(shù)據(jù)總線 (通過:一)。Tw 狀態(tài):若存貯器或外設速度較慢,不能及時送上數(shù)據(jù)的話,則通過亠的前沿(即二結(jié)束末的下降沿)檢測 READY,若發(fā)現(xiàn) READY = 0,則在二結(jié)束后自動插入 1 個或幾個 并在每個丄耳的前沿處檢測 READY,等到 READY 變高后,則自動脫離”進入二。T4狀態(tài):在 與二(或二)的交界處(下降沿),采集數(shù)據(jù),使各控制及狀態(tài)線進入無效。13. 8086 中斷分哪兩類? 8086
11、可處理多少種中斷?答:中斷共分為兩類:硬件中斷和軟件中斷,8086 可處理 256 種中斷。14. 8086 可屏蔽中斷請求輸入線是什么? “可屏蔽”的涵義是什么?答:硬件中斷又可分為兩類:可屏蔽中斷和不可屏蔽中斷。不可屏蔽中斷:由受中斷允許標志 IF 的影響,每個系統(tǒng)中僅允許有一個,都是用來處理緊急情況的,只有當 IF = 1 時,可屏蔽中斷才能進入,反之則不允許進入。NMI 引腳引入,它不如掉電處理。這種中斷一旦發(fā)生,系統(tǒng)會立即響應;可屏敝中斷:由INTR 引腳引入,它受中斷允許標志IF 的影響,也就是說,READY 線通知 CPU , CPU 在15.中斷向量表的功能是什么?已知中斷類型
12、碼分別是的什么位置?答:中斷向量表存放的是各中斷程序的入口地址即碼,可以算出中斷程序在中斷向量表的什么位置:84H 和 0FAH,它們的中斷向量應放在中斷向量表16 位偏移地址和 16 位段地址,只要給出中斷類型中斷向量表地址=中斷類型碼*4中斷向量表地址仁 84H*4=210H中斷向量表地址 2=0FAH*4=3E8H第3章習題和解答1.簡要分析 8086 的指令格式由哪些部分組成,什么是操作碼?什么是操作數(shù)?尋址和尋址方式的含義是 什么? 8086 指令系統(tǒng)有哪些尋址方式?答:指令由操作碼和操作數(shù)兩部分組成,操作碼表示計算機執(zhí)行某種指令功能,操作數(shù)表示操作中所需 要的數(shù)據(jù)或者數(shù)據(jù)所在存儲單
13、元的地址。尋址方式是尋找操作數(shù)或操作數(shù)地址的方式。8086 提供了七種尋址方式:立即尋址、寄存器尋址、直接尋址、寄存器間接尋址、相對寄存器尋址、 基址變址尋址和相對基址變址尋址方式。2.設(DS)=2000H,(ES)= 2100H,(SS)= 1500H,(Sl)= 00A0H,(BX)= 0100H,(BP)= 0010H,數(shù)據(jù)變量 VAL 的偏移地址為 0050H,請指出下列指令的源操作數(shù)字段是什么尋址方式?它的物理地址是多少?3.給定寄存器及存儲單元的內(nèi)容為: (DS) = 2000H,(BX) = 0100H,(SI) =0002H,(20100) =32H,(1) MOVAX,21
14、H立即尋址MOVAX,BX寄存器尋址(3) MOVAX,1000H直接尋址MOVAX,VAL直接尋址(5) MOVAX,BX寄存器間接尋址MOVAX,ES: BX寄存器間接尋址(7) MOVAX,BP寄存器間接尋址(8) MOVAX,SI寄存器間接尋址(9) MOVAX,BX+10H相對寄存器尋址(10) MOVAX ,VALBX相對寄存器尋址(11) MOVAX ,BXSI基址變址尋址(12) MOV AX,V ALBXSI相對基址變址尋址物理地址無物理地址無物理地址=2000H*10H+1000H=21000H物理地址=2000H*10H+0050H=20050H物理地址=2000H*10
15、H+0100H=20100H物理地址=2100H*10H+0100H=21100H物理地址=1500H*10H+0010H=15010H物理地址=2000H*10H+00A0H=200A0H物理地址=2000H*10H+0100H+10H=20110H物理地址=2000H*10H+0100H+50H=20150H(20101)=51H,(20102) =26H,試說明下列各條指令執(zhí)行完后,(1) MOV(2) MOVAX,AX,1200HBX立即尋址 AX=1200H寄存器尋址AX=0100H(3) MOVAX, 1200H物理地址直接尋址=2000H*10H+1200H=21200AX=0B
16、61AH(4) MOVAX,(5) MOVAX,(6) MOVAX,BX寄存器間接尋址物理地址=2000H*10H+0100H=20100H1100HBX相對寄存器尋址物理地址=2000H*10H+0100H+1100H=21200HAX=0B61AHBXSI基址變址尋址AX=5132H第4章習題和解答(20103)= 83H,(21200)=1AH,(21201)=B6H,AX 寄存器中保存的內(nèi)容是什么。4.試說明指令 MOV BX,10HBX 與指令 LEA BX,10HBX的區(qū)別(21202)=D1H,(21203)=29H。答: MOV BX,10HBX BX= 物理地址為 (DS*1
17、0H+BX+10H)2 字節(jié)單元的內(nèi)容 LEABX,10HBX BX= BX+10H( 地址 )(1) JMP 2500H(2) JMP BXIP =2500HCS=1000H CS 段指令物理地址 =1000H*10H+2500H=12500HIP=BX=1000HCS=1000H CS 段指令物理地址 =1000H*10H+1000H=11000H5. 假設 (DS)=3000H,(CS)=1000H,(IP)=1500H,(BX)=1000H, 位移量大 DATA=50H (31000H)=1250H,(31050H)=2400H,(31052H)=6000H 。確定下列轉(zhuǎn)移指令的轉(zhuǎn)移地
18、址(3) JMP WORD PTRBX DS 段物理地址 =3000H*10H+1000H=31000HIP=(31000H)=1250HCS=1000H: CS 段指令物理地址 =1000H*10H+1250H= 11250H(4) JMP DWORD PTRBX+DATA DS 段物理地址 =3000H*10H+1000H+50H=31050H IP=(31050H)=2400HCS=(31052H)=6000H CS 段指令物理地址 =6000H*10H+2400H=62400H6.設堆棧指針 SP 的初值為 2500H, (AX)=1234H,(BX)=5678H 。 執(zhí)行指令 PUS
19、H AX 后, (SP)=?,再執(zhí)行指令 PUSH BX 及 POPAX 之后, (SP)=?(AX)=?(BX)=?PUSH AXPUSH BXPOP AXSP=SP-2=2500H-2=24FEHSP=SP-2=24FEH-2=24FCHSP=SP+2=24FCH+2=24FEHAX=5678HBX=5678H7. 分析下列指令的正誤,(1) MOV AH , BX(2) MOV BX , SI(3) MOV AX , SIDI(4) MOV MYDATBXSI(5) MOV BYTE PTRBX(6) MOV對于錯誤的指令要說明原因并加以改正。錯數(shù)據(jù)結(jié)構(gòu)不同 錯 錯 源區(qū)都為變址寄存器M
20、OV AX , BX 或 MOV AH , BL二存儲單元間不允許直接傳送數(shù)據(jù) MOV AX , SI MOV BX , AXMOV AX , BXDI 或 MOV AX , BXSI 錯 段前綴應指向存儲單元 MOV ES: MYDATBXSI , AX, ES: AX, 1000BX, OFFSET MAYDATSI 錯 MAYDAT 為符號地址 錯 不允許給 CS 賦值 MOV DS , AX錯 數(shù)據(jù)結(jié)構(gòu)不同MOV BYTE PTRBX , 100MOV BX, OFFSET MAYDAT(7) MOV CS , AX(8) MOV DS, BP8. 設 VAR1 、 VAR2 為字變量
21、,(1) ADD VAR1 , VAR2(2) MOV AL , VAR2(3) SUB AL , VAR1(4) JMPLABSI(5) JNZVAR1錯 賦值方式不對MOV AX , BP MOVDS , AXLAB 為標號,分析下列指令的錯誤之處并加以改正。VAR1 、 VAR2 為字變量 (代表 2 個存儲單元地址 MOVAX, V AR2 ADD V AR1 , AX 數(shù)據(jù)結(jié)構(gòu)不同MOVAX , VAR2數(shù)據(jù)結(jié)構(gòu)不同SUB AX , VAR1LAB 為標號地址 JMP LABVAR1 為字變量不是標號地址 JNZ LAB錯錯錯錯9. 已知 (AL)=6CH, (BL)=0A9H, 執(zhí)
22、行指令 ADD AL,BL 后,AF、CF=1 OF=0ADD AL,BL AL=6CH+ A9H=15H AF=110. 試判斷下列程序執(zhí)行后, (BX)= 的內(nèi)容。MOV CL,5MOV BX,01C9HROL BX,1RCR BX,CLCF、 OF、 PF、PF=0 SF=0SF、和 ZF 的值各為多少?ZF=0BX=01C9HBX=0392HBX=201CH11. 寫出能夠完成下列操作的 8086CPU 指令。(1)(2)(3)12.把 4629H 傳送給 AX 寄存器; 從 AX 寄存器中減去 3218H;把 BUF 的偏移地址送入 BX 中。 根據(jù)以下要求寫出相應的匯編語言指令。M
23、OVSUBLEAAX, 4629HAX, 3218HBX, BUF(1) 把 BX 和 DX 寄存器的內(nèi)容相加,結(jié)果存入DX 寄存器中;ADD DX, BX(2)用 BX 和 SI 的基址變址尋址方式,把存儲器中的一個字節(jié)與 AL 內(nèi)容相加,并保存在 AL 寄存器中; ADD AL, BXSI(3)用寄存器 BX 和位移量 21B5H 的變址尋址方式把存儲器中的一個字和 (CX) 相加,并把結(jié)果送回存儲器 單元中; ADDWORD PTR BX+21B5H, CX(4)用位移量 2158H 的直接尋址方式把存儲器中的一個字與數(shù) 3160H 相加,并把結(jié)果送回該存儲器中; ADD WORD PT
24、R2158H, 3160H 把數(shù) 25H 與(AL)相加,結(jié)果送回寄存器 AL 中。 ADD AL, 25H13. 按下列要求寫出相應的指令或程序段。(1)使 BL 寄存器中的高、低四位互換;MOV CL, 4ROL BL, CL(2)屏蔽 AX 寄存器中的 b10 和 b5 位;AND AX, 1111 1011 1101 1111B 分別測試 AX 寄存器中 b13 和 b2 位是否為 1。TEST AX, 0000 0000 0000 0100B測試 AX 寄存器中 b2 位是否為 1TEST AX, 0010 0000 0000 0000B測試 AX 寄存器中 b13 位是否為 114
25、. 執(zhí)行以下兩條指令后,標志寄存器 FLAGS 的六個狀態(tài)為各為何值? MOV AX,95C8HADD AX,8379HAX=1941H AF=1 CF=1 OF=1 PF=1 SF=0 ZF=015. 若(AL)=85H,(BL)=11H,在分別執(zhí)行指令 MUL 和 IMUL 后,其結(jié)果是多少?MUL BL AL*BL=85H*11H=133*17=2261AX=08D5H( 無符號數(shù)相乘 )IMUL BL AL*BL=-7BH*11H=(-123)*17= -2091 AX=0F7D5H( 有符號數(shù)相乘 )1請分別用第4章習題和解答DB、DW、DD 偽指令寫出在 DATA 開始的連續(xù) 8
26、個單元中依次存放數(shù)據(jù)11H、 22H、 33H、44H、 55H、 66H、77H、88H 的數(shù)據(jù)定義語句。DATADB11H,22H,33H,44H,55H,66H,77H,88HDATADW1122H,3344H, 5566H,7788HDATA110HDATADD11223344H,55667788H20H2.若程序的數(shù)據(jù)段定義如下,寫出各指令語句獨立執(zhí)行后的結(jié)果:DSEGSEGMENTDATA230HDATA1DB 10H, 20H, 30HDW 10 DUPSTRING DB 123DATA2DSEGENDS(1) MOVAL , DATA1AL=10H(2) MOVBX , OFF
27、SET DATA2BX=0003HLEASI, STRINGSI=0017HADDBX , SIBX=001AHMOVAL , SI+2AL=33H;3 個字節(jié)(數(shù)據(jù)為 10H,20H,30H),地址 0000H-0002H;20 個字節(jié)(數(shù)據(jù)全為未知數(shù)),地址 0003H-0016H;3 個字節(jié)(數(shù)據(jù)為 31H,32H,33H),地址 0017H-0019HSTRING3試編寫求兩個無符號雙字長數(shù)之和的程序。兩數(shù)分別在DATASSEGMENTMEM1DD 82349678HMEM2DD 9876A432HSUMDDDATASENDSCODESSEGMENTASSUME CS:CODES, D
28、S:DA TASSTART:MOV AX, DA TASMOV DS, AXLEA BX,MEM1;取定義的取 MEM1LEA SI, MEM2取 MEM2LEA DI, SUMMOV AX, WORD PTR BXADD AX, WORD PTR SIMOV WORD PTR DI, AXINC BXINC BXINC SIINC SIINC DI31H32H33HMEM1 和 MEM2 單元中,和放在 SUMMEM178H96H34H82HMEM232HA4H76H98HDS 段的段地址 DS偏移地址 BX=0000H偏移地址 SI=0004H;取 SUM 偏移地址 DI=0008HAX=
29、9678H0000H0001H0002H0003H0004H0005H0006H0007H;將0000H地址的內(nèi)容 9678H;AX+0004H地址的內(nèi)容 A432H AX=3AAAH, 有進位 CF=1;將 AX 的內(nèi)容 偏移地址 DI=0008H 字單元中;BX=BX+1=0001H;BX=BX+1=0002H;SI=SI+1=0005H;SI=SI+1=0006H;DI=DI+1=0009H0000H0001H0002H0003H0004HIII0015H0016H0017H0018H0019H單元。INC DIMOV AX,WORD PTR BXADC AX,WORD PTR SI;D
30、I=DI+1=000AH;將0002H地址的內(nèi)容 8234HAX=8234H;AX+0006H地址的內(nèi)容 9876H+CF AX=1AABH, 有進位 CF=1MOV WORD PTR DI,AX;將 AX 的內(nèi)容 偏移地址 DI=000AH 字單元中MOV AH, 4CHINT 21HCODES ENDSEND START4試編寫程序,測試 AL 寄存器的第TEST AL, 00001000B4 位是否為 0 ?JZ LP5.編寫程序,將 BUFFER 中的一個 開始的內(nèi)存單元中。8 位二進制數(shù)轉(zhuǎn)換為 ASCII 碼,并按位數(shù)高低順序存放在ANSWERDATA SEGMENTBUFFER D
31、B 3CHANSWER DB ?, ?DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATASTART: MOV AX, DA TAMOV DS, AXMOV AL, BUFFER;AL=3CHLP1 :LP2 :LP3:LP4:CODEMOV CL, 4SHR AL, CLCMP AL,9JG LP1ADD AL,30HJMP LP2ADD AL,37H;將 AL 內(nèi)容右移 4 位 AL=03H,先取高四位 3;若 AL 內(nèi)容大于 9,說明 AL 內(nèi)容在 A-F 之間;否則 AL 內(nèi)容小于 9,將 AL 內(nèi)容轉(zhuǎn)換為 ASCII 碼即 AL+30H-AL;將
32、ALMOV ANSWER, ALMOV AL, BUFFERAND AL, 0FHCMP AL,9JG LP3ADD AL,30HJMP LP4ADD AL,37H內(nèi)容轉(zhuǎn)換為 ASCII 碼即 AL+37H-AL (如 0CH+37H=43H 大寫 C 的 ASCII 碼);將結(jié)果存入 ANSWER 第一個單元;AL=3CH;取 AL 內(nèi)容低四位 C;若 AL 內(nèi)容大于 9,說明 AL 內(nèi)容在 A-F 之間;否則 AL 內(nèi)容小于 9;將 AL 內(nèi)容轉(zhuǎn)換為 ASCII 碼即 AL+30H-AL;將 AL 內(nèi)容轉(zhuǎn)換為 ASCII 碼MOV ANSWER+1, AL ;將結(jié)果存入 ANSWER 第二
33、個單元MOV AH, 4CHINT 21HENDSEND START6假設數(shù)據(jù)項定義如下:DATA1 DB HELLO GOOD MORNING !48H0000H H45H0001HE1 4CH0002HLr 4CH0003HL4FH0004H O21H0005H!20H0006H47H0007H G4FH0008H O1 4FH0009H Or 44H000AH D20H000BH4DH000CH M4FH000DH O52H000EH R4EH000FH N49H0010H I4EH0011H N47H0012H G21H0013H!DATA1DATA2 DB 20 DUP用串操作指令編
34、寫程序段,使其分別完成以下功能:i.從左到右將 DATA1 中的字符串傳送到 DATA2 中;LEA SI, DATA1;SI=OOOOHLEA DI, DATA2;DI=0014HMOV CX, 20;20 個字符REP MOVSB ;將 DATA1 中的字符串傳送到 DATA2 中ii.傳送完后,比較 DATA1 和 DATA2 中的內(nèi)容是否相同;LEA SI, DATA1LEA DI, DATA2MOV CX, 20;20 個字符REPE CMPSB;CX 不為零時,字符相同繼續(xù)比較,不同指令停止JNZ STOP;若不同- STOP;否則都相同iii.把 DATA1 中的第 3 和第 4
35、 個字節(jié)裝入 AX ;MOV AX, WORD PTR DATA1+2iv.將 AX 的內(nèi)容存入 DATA2+5 開始的字節(jié)單元中。MOV WORD PTR DATA2+5, AX執(zhí)行卜列指令后,AX 寄存器中的內(nèi)容是多少?10, 20, 30, 40, 503TABLEENTRYDWDWMOVBX, OFFSETTABLE;BX=0000H(地址)ADDBX, ENTRY;BX=0003HMOVAX, BX;AX=1E00HTABLE0AH00H14H00H1EH00H28H00H32H00HENTRY03H00H0000H0001H0002H0003H0004H0005H0006H0007
36、H0008H0009H000AH000BH8.編寫程序段,將STRING1 中的最后 20 個字符移到 STRING2 中(順序不變)。DATA SEGMENTSTRING1 DB 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ ”;36 個字符 ASCII 碼STRING2 DB 20 DUPL EQU STRING2- STRING1; STRING1 的長度=36DATA ENDSCODE SEGMENTASSUME CS:CODE. DS:DATA, ES:DA TASTART: MOVAX, DATAMOVDS, AXMOVES, AXLEASI, STRI
37、NG1LEADI, STRING2MOV CX, 20MOV AX, LSUB AX, CXADD SI, AXREP MOVSBMOV AH, 4CH;取 STRING1 串的首地址=0000H;取 STRING2 串的首地址=0024H=36;AX=36=0024H;AX=36-20=0024H-0014H=0010H;SI=SI+AX=0000H+0010H=0010HINT 21HCODE ENDSEND START9. 假設一個 48 位數(shù)存放在 DX :AX:BX 中,試編寫程序段,將該 48 位數(shù)乘 2。CODESEGMENTASSUME CS:CODESTART:MOV BX,
38、 9ABCH;設 DX AX BX=1234 5678 9ABCHMOV AX, 5678HMOV DX, 1234H;DX AX BX*2= 將 DX AX BX 左移一次SHL BX, 1;BX=BX*2=3578H, CF=1RCL AX, 1;AX=AX*2+CF=ACF1H, CF=0RCL DX, 1MOV AH, 4CHINT 21H;DX=DX*2+CF=2468H, CF=0CODEENDSEND START10. 試編寫程序,比較 AX , BX , CX 中帶符號數(shù)的大小,并將最大的數(shù)放在AX 中。CODESEGMENTASSUME CS:CODESTART:MOV AX
39、, -5MOV BX, 6MOV CX, 10CMP AX, BXJGE LL1XCHG AX, BXLL1:CMP AX, CXJGE LL2XCHG AX, CXLL2:MOV AH, 4CHINT 21HCODEENDSEND START11.若接口 03F8H 的狀態(tài)的數(shù)據(jù)(bl)和(b3)同時為 1,表示接口 03F8H 有準備好的 8 位數(shù)據(jù), 當 CPU 將數(shù) 據(jù)取走后,b1 和 b3 就不再同時為 1 了。僅當又有數(shù)據(jù)準備好時才再同時為 1。試編寫程序,從上述接口讀入 20 個數(shù)據(jù),并順序放在 DATA 開始的地址中。DATAS SEGMENTDATA DB 20 DUP(?)
40、DATAS ENDSCODES SEGMENTASSUME CS:CODES, DS:DATASSTART: MOV AX, DA TAMOV DS, AXMOV CX, 20LEA BX, DATAMOV DX, 03F8HLOP:IN AL, DXNOT ALTEST AL, 00001010bJNZ LOPIN AL, DXMOV BX, ALINC BXDEC CXJNZ LOPMOV AH, 4CHINT 21HCODES ENDS;讀接口狀態(tài);將 AL 內(nèi)容取反,若 b1=1 和 b3=1 取反后全為 0;判斷接口 03F8H 的狀態(tài)的數(shù)據(jù)(b1)和(b3)是否同時為 1;若相與的
41、結(jié)果不為零表示接口沒有準備好,繼續(xù)讀狀態(tài);若相與的結(jié)果為零表示接口準備好;讀接口數(shù)據(jù);存數(shù)據(jù);從接口讀入 20 個數(shù)據(jù)END START12.畫圖說明下列語句分配的存儲空間及初始化的數(shù)據(jù)值(1) DATA1 DB BYT 巳 12,12H,2 DUP(0,?, 3) DATA2 DW 2 DUP(0,1,2),?, -5,256H13請用子程序結(jié)構(gòu)編寫如下程序:從鍵盤輸入一個 文縮寫名。14.給出下列等值語句:LPHABETAEQUEQUEQU10025GRAMM試求出下列表達式的值:(1) ALPHA*100+BETA ;MOVAL, LPHAMOVBL, 100MOVCX, BETAMUL
42、BL;AL*BL-AXADD AX, CX(2) (ALPHA + 4)*BETA-2MOVAL, LPHAADDAL, 4MOVBL, BETAMULBL;AL*BL-AXSUBAX, 2(3) (BETA/3)MOD 5 ;MOVAX, BETAMOVBL, 3DIVBL.位十進制的月份數(shù)(0112),然后顯示出響應的英DATA142H0000HDATA20000H0000H59H0001H0001H0002H55H0002H0002H0004H45H0003H0000H0006H0CH0004H0001H0008H12H0005H0002H000AH00H0006H?000CH?0007
43、HFFFB000DH03H0008H0256H000EH00H0009H0010H?H000AH0012H03H000BH0014HMOV AL, AL MOD 5 GRAMM OR 3 MOV AL,GRAMM OR AL, 3DATA110H34H07H09HDATA242H00H42H00HDATA348H45H4CH4CH4FHDATA5CDHABH00H0000H0001H0002H0003H0004H0005H0006H0007H0008H0009H000AH000BH000CH000DH000EH000FH15. 圖示以下數(shù)據(jù)段在存儲器中的存放形式。DATA SEGMENTDAT
44、A1DB10H ,34H,07H ,09HDATA2DW2 DUP(42H)DATA3 DB HELLODATA4EQU 12DATA5DD0ABCDHDATA ENDS16. 閱讀下邊的程序段,試說明它實現(xiàn)的功能是什么?DATASSEGMENTDATA1DB ABCDEFGDATASENDSCODESSEGMENTASSUME CS:CODES, DS:DA TASSTART:MOV AX, DATASMOV DS, AXMOV BX, OFFSETDATA1 ;BX 取 DATA1 地址 , BX=0000HMOV CX, 7NEXT:MOV AH, 2;DOS 功能 2MOV AL, B
45、X XCHGAL, DL INC BXINT 21H;將要顯示字符的ASCII 送 DLLOOP NEXT; 功能是顯示字符ABCDEFGMOV AH, 4CHINT 21HCODESENDSEND START17. 編寫一程序段, 把 BUFFER 開始的 100 個字節(jié)的內(nèi)存區(qū)域初始化為 55H、0AAH 、55H 、0AAH 、 55H、0AAH 。DATAS SEGMENTBUFFER DB 100 DUP(?)DATAS ENDSCODES SEGMENTASSUME CS:CODES, DS:DA TASSTART: MOV AX, DA TASMOV DS, AXLEA BX,
46、BUFFER ;BX 取 BUFFER 地址 , BX=0000H MOV CX, 50LP: MOV BX,55HINC BXMOV BX.0AAHINC BXDEC CXJNZ LPMOV AH, 4CHINT 21HCODES ENDSEND START18. 有 16 個字節(jié),編程序?qū)⑵渲械?2、 5、 9、14、 15 個字節(jié)內(nèi)容加 3,其余字節(jié)內(nèi)容乘 出)。DATAS SEGMENTNUM0 DB 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16L1DB 2,5,9,14,15L2DB 1,3,4,6,7,8,10,11,12,13,16DATAS EN
47、DSCODES SEGMENTASSUME CS:CODES,DS:DATASSTART: MOV AX, DA TASMOV DS, AXLEA SI, L1LEA DI, L2MOV CX, 5LP1: LEA BX,NUM0ADD BL,SISUB BL,1ADD BYTE PTRBX, 3INC SILOOP LP1MOV CX, 11LP2: LEA BX,NUM0ADD BL,DISUB BL,1SHL BYTE PTRBX,1;左移 =*2INC DILOOP LP2MOV AH,4CHINT 21HCODES ENDSEND START19. 編寫計算斐波那契數(shù)列前 20 個值
48、的程序。斐波那契數(shù)列的定義如下: F(0)=0,F(xiàn)(1)=1,F(xiàn)(N)=F(N-1)+F(N-2) , N 2DATAS SEGMENTF DW 0, 1, 18 DUP(?) ;此處輸入數(shù)據(jù)段代碼DATAS ENDSCODES SEGMENT2(假定運算不會溢ADD DL,30HMOV SI,DLDEC SILOOP LP2LEA DX,BUFMOV AH,9INT 21HADD BX,2POP CXLOOP LP1MOV AH,4CHINT 21HCODES ENDSEND START20. 試編寫將鍵盤輸入的ASCII 碼轉(zhuǎn)換為二進制數(shù)的程序。 如1DATAS SEGMENTSTART:
49、MOV AX, DA TASMOV DS, AXLEA BX, F;BX=0000HMOV CX,18;剩余 18 個數(shù)LP:MOV AX,BX;AX=F(0)=0ADD AX,BX+2;AX=F(0)+F(1)=0+1=1MOV WORD PTRBX+4,AX ;F(2)=F(1)+F(0)=1, F(N)=F(N-1)+F(N-2)ADD BX, 2;F(BX+4)=F(BX+2)+F(BX)LOOP LPLEA BX,F;顯示 20 個數(shù)據(jù)LP1:MOV CX,20PUSH CXLEA SI,BUF +4MOV CX,5MOV AX,BX;取數(shù)LP2:MOV DX,0MOV DI,10DIV DI;DXAX/DIASSUME CS:CODES,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度時尚消費品代理進口及市場布局合同
- 二零二五年度退休科研人員合作研發(fā)聘用合同
- 二零二五學年度學生校車安全乘車環(huán)境改善與優(yōu)化協(xié)議
- 股權代持協(xié)議書標準模板:2025年度股權置換與重組范本
- 二零二五年度校園安全責任與學生家長參與合同
- 二零二五年度購物中心日常保潔與應急處理合同
- 三字經(jīng)中道理的故事解讀
- 旅游目的地營銷與品牌形象塑造研究
- 綠化零工勞務合同
- 產(chǎn)品供應和分銷合同
- 三角形的內(nèi)角和-課件
- 國企工程施工分包管理2019(67P+PPT)
- 成人大專畢業(yè)論文怎么寫(通用6篇)
- 醫(yī)院高壓氧艙室施工方案
- 質(zhì)量問題檢出獎勵申請表模板
- 中職學生日常行為規(guī)范主題班會講稿
- 《大數(shù)據(jù)分析與應用》教學大綱
- 2022年中國遠洋海運集團有限公司招聘考試題庫及答案解析
- 供應鏈管理課件第5章供應鏈合作伙伴選擇與評價
- 4D現(xiàn)場管理培訓ppt課件(PPT 45頁)
- 餐飲店面投資預算(900平方米)
評論
0/150
提交評論