版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第1章習(xí)題和解答15. 將下列十進(jìn)制數(shù)分別轉(zhuǎn)化為二進(jìn)制數(shù)、十六進(jìn)制數(shù)和BCD碼。(1) 15.32=(0000 1111.0101 0001)2=(0F.51) 16=(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
2、) 16=(0010 0001 0100.0001 0010 0110) bcd16. 將下列二進(jìn)制數(shù)分別轉(zhuǎn)化為十進(jìn)制數(shù)和十六進(jìn)制數(shù)。(1) 1011010 仁 18仁 0B5H(2) 1100101 仁 203=0CBH(3) 10101.1001= 21.5625=15.9 H(4) 101101.0101= 45.3125=2D.5H17. 將下列十六進(jìn)制數(shù)分別轉(zhuǎn)化為二進(jìn)制數(shù)、十進(jìn)制數(shù)。(1) FAH=1111 1010B=250(2) 12B8H=0001 0010 1011 1000B=4792(3) 5A8.62H=0101 1010 1000.0110 0010B=1448.38
3、28125(4) 2DF.2H=0010 1101 1111.0010B=735.12518. 若 X= -107 , Y= +74 按 8 位二進(jìn)制可寫出:。 兇 補(bǔ)=95H ,Y補(bǔ)=4AH, X +Y補(bǔ)=0DFH,X-Y補(bǔ)=4BH19. X = 34AH Y= 8CH問:有三位和兩位十六進(jìn)制數(shù)X和Y,(1) 若X, Y是純數(shù)(無符號數(shù)),則:X+Y= 3D6H X-Y = 2BEH(2) 若 X, Y 是有符號數(shù),則:X+Y= 2D6 H; X-Y=3BEH20. 已知X= 85, Y= 76(均為十進(jìn)制數(shù)),求-85補(bǔ),卜76補(bǔ)。并利用補(bǔ)碼的加、減法運(yùn)算規(guī)則計(jì)算X-Y補(bǔ),-X+Y補(bǔ),-X
4、-Y補(bǔ)。結(jié)果的各機(jī)器數(shù)及其真值請用十六進(jìn)制表示,并由運(yùn)算過程中的標(biāo)志位OF判斷結(jié)果是否溢出。答:X補(bǔ)=85補(bǔ)=55H,Y # =76補(bǔ)=4CH , -X# =-85補(bǔ)=0ABH, -Y補(bǔ)=卜76補(bǔ)=0B4HX-Y補(bǔ)=兇 補(bǔ)+-Y補(bǔ)=55H+B4H=09H, OF=0-X+Y補(bǔ)=-X補(bǔ) +Y # =ABH+4CH=0F7H, OF=0-X-Y # =-X補(bǔ) +-Y # =ABH+B4H=5FH, OF=121. (1) 設(shè)X補(bǔ)=10101010B,則1/2X補(bǔ)=1/2X補(bǔ)=11010101B(2) 設(shè)兇 補(bǔ)=11010100B,則-1/4X補(bǔ)=1/4兇 補(bǔ)補(bǔ)=11110101補(bǔ)=00001011
5、B第2章習(xí)題和解答I. 8086是多少位的微處理器?為什么?答:8086是高性能的第三代微處理器,是Intel系列的16位微處理器。2. EU與BIU各自的功能是什么?如何協(xié)同工作?答:EU其主要功能是執(zhí)行命令。BIU其主要功能是負(fù)責(zé)完成 CPU與存儲器或I/O設(shè)備之間的數(shù)據(jù)傳送。 總線接口部件BIU和執(zhí)行部件EU并不是同步工作的,兩者的動作管理遵循如下原則:每當(dāng)8086的指令隊(duì)列中有2個空字節(jié),BIU就會自動把指令取到指令隊(duì)列中。而同時EU從指令隊(duì)列取出一條指令,并用幾個時鐘周期去分析、 執(zhí)行指令。 當(dāng)指令隊(duì)列已滿,而且EU對BIU又無總線訪問請求時, BIU便進(jìn)入空閑狀態(tài)。3. 8086/
6、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位標(biāo)志寄存器FLAGS寄存器是有限存貯容量的高速存貯部件,它們可用來暫存指令、數(shù)據(jù)和位址。4. 8086對存儲器的管理為什么采用分段的辦法?答:8086 CPU有20位地址總線,它可尋址的存儲空間為1MB而8086指令給出的地址編碼只有 16位,指令指針和變址寄存器也都是16位的,所以CPU
7、不能直接尋址1 MB空間,為此采用分段管理。5. 在8086中,邏輯地址、偏移地址、物理地址分別指的是什么?具體說明。答:邏輯地址=物理地址:偏移地址;偏移地址=相對于段起始地址的距離; 物理地址=段地址*10H+偏移地址6. 給定一個存放數(shù)據(jù)的內(nèi)存單元的偏移地址是20C0H, (DS)=0C00EH,求出該內(nèi)存單元的物理地址。答: 物理地址=段地址*10H+偏移地址=0C00E0H+20C0H=0C21A0H7. 8086/8088 為什么采用地址/數(shù)據(jù)引線復(fù)用技術(shù)?答:8086/8088 CPU具有40條引腳,采用分時復(fù)用地址數(shù)據(jù)總線,從而使 8086/8088 CPU用40條引腳 實(shí)現(xiàn)2
8、0位地址、16位數(shù)據(jù)、控制信號及狀態(tài)信號的傳輸。8. 8086 與8088的主要區(qū)別是什么?答:8086有16位數(shù)據(jù)線,8088有8位數(shù)據(jù)線。9. 怎樣確定8086的最大或最小工作模式?答:8088/8086CPU的丄創(chuàng)丄亠引腳固定接+5V時,CPU處于最小模式下,引腳固定接地時,CPU處于最大模式下。10. 8086被復(fù)位以后,有關(guān)寄存器的狀態(tài)是什么?微處理器從何處開始執(zhí)行程序?答:復(fù)位信號輸入之后,CPU吉束當(dāng)前操作,并對處理器的標(biāo)志寄存器、IP、DS SS ES寄存器及指令隊(duì)列進(jìn)行清零操作,而將 CS設(shè)置為0FFFFHII. 8086基本總線周期是如何組成的?各狀態(tài)中完成什么基本操作?答
9、:一個基本的總線周期由4個T狀態(tài)組成,我們分別稱為 T1-T44個狀態(tài),在每個T狀態(tài)下,CPU完成不同的動作。T1狀態(tài):根據(jù)10/疔 定對存貯器或I/O操作,20位地址AA*信號有效,地址鎖存信號 ALE有效, 給出DT/R信號控制8286 數(shù)據(jù)傳輸方向。T2狀態(tài):高四位地址/狀態(tài)線送出狀態(tài)信息 S3S6,低16位地址/數(shù)據(jù)線浮空,為下面?zhèn)魉蛿?shù)據(jù)準(zhǔn)備;WR或 RD有效,表示要對存貯器/I/O 端口進(jìn)行讀或?qū)? H 有效,使得總線收發(fā)器(驅(qū)動器)可以傳輸數(shù) 據(jù)。T3狀態(tài):從存貯器或者I/O端口讀出的數(shù)據(jù)送上數(shù)據(jù)總線 (通過一 一 )。Tw狀態(tài):若存貯器或外設(shè)速度較慢,不能及時送上數(shù)據(jù)的話,則通過
10、READYS通知CPU CPU 的前沿(即匚結(jié)束末的下降沿)檢測READY若發(fā)現(xiàn)READ羊0,則在I結(jié)束后自動插入1個或幾個、,并在 每個吒的前沿處檢測 READY等到READYS高后,則自動脫離 幾進(jìn)入瓷。T4狀態(tài):在匚與I (或a )的交界處(下降沿),采集數(shù)據(jù),使各控制及狀態(tài)線進(jìn)入無效。13. 8086中斷分哪兩類? 8086可處理多少種中斷?答:中斷共分為兩類:硬件中斷和軟件中斷,8086可處理256種中斷。14. 8086可屏蔽中斷請求輸入線是什么? “可屏蔽”的涵義是什么?答:硬件中斷又可分為兩類:可屏蔽中斷和不可屏蔽中斷。不可屏蔽中斷:由NMI引腳引入,它不受中斷允許標(biāo)志IF的影
11、響,每個系統(tǒng)中僅允許有一個,都是用來處理緊急情況的,如掉電處理。這種中斷 一旦發(fā)生,系統(tǒng)會立即響應(yīng);可屏蔽中斷:由INTR引腳引入,它受中斷允許標(biāo)志 IF的影響,也就是說,只有當(dāng)IF = 1時,可屏蔽中斷才能進(jìn)入,反之則不允許進(jìn)入。15. 中斷向量表的功能是什么?已知中斷類型碼分別是84H和0FAH它們的中斷向量應(yīng)放在中斷向量表的什么位置?答:中斷向量表存放的是各中斷程序的入口地址即16位偏移地址和16位段地址,只要給出中斷類型碼,可以算出中斷程序在中斷向量表的什么位置:中斷向量表地址=中斷類型碼*4中斷向量表地址仁84H*4=210H中斷向量表地址 2=0FAH*4=3E8H第3章習(xí)題和解答
12、1. 簡要分析8086的指令格式由哪些部分組成,什么是操作碼?什么是操作數(shù)?尋址和尋址方式的含義是 什么? 8086指令系統(tǒng)有哪些尋址方式?答:指令由操作碼和操作數(shù)兩部分組成,操作碼表示計(jì)算機(jī)執(zhí)行某種指令功能,操作數(shù)表示操作中所需 要的數(shù)據(jù)或者數(shù)據(jù)所在存儲單元的地址。尋址方式是尋找操作數(shù)或操作數(shù)地址的方式。8086提供了七種尋址方式:立即尋址、寄存器尋址、直接尋址、寄存器間接尋址、相對寄存器尋址、 基址變址尋址和相對基址變址尋址方式。2. 設(shè)(DS)=2000H, (ES)= 2100H, (SS)= 1500H, (Sl)= 00A0H, (BX)= 0100H, (BP)= 0010H,數(shù)
13、據(jù)變量 VAL的偏移地址為0050H,請指出下列指令的源操作數(shù)字段是什么尋址方式?它的物理地址是多少?(1) MOV AX,21H立即尋址(2) MOV AX,BX寄存器尋址 MOV AX,1000H直接尋址(4) MOV AX,VAL直接尋址 MOV AX,BX寄存器間接尋址(6) MOV AX,ES: BX寄存器間接尋址 MOV AX,BP寄存器間接尋址(8) MOV AX,SI寄存器間接尋址(9) MOV AX,BX+10H相對寄存器尋址(10) MOV AX,VALBX相對寄存器尋址(11) MOV AX,BXSI基址變址尋址(12) MOV AX,VALBXSI相對基址變址尋址物理地
14、址無物理地址無物理地址=2000H*10H+1000H=21000H物理地址=2000H*10H+0050H=20050H物理地址=2000H*10H+0100H=20100H物理地址=2100H*10H+0100H=21100H物理地址=1500H*10H+0010H=15010H物理地址=2000H*10H+00A0H=200A0H物理地址=2000H*10H+0100H+10H=20110H物理地址=2000H*10H+0100H+50H=20150H物理地址=2000H*10H+0100H+A0H=201A0H物理地址=2000H*10H+0100H+A0H+50H=201F0H3.
15、給定寄存器及存儲單元的內(nèi)容為:(DS) = 2000H ,(BX) = 0100H ,(SI) = 0002H ,(20100) =32H ,(20101)=51H,(20102) =26H, 試說明下列各條指令執(zhí)行完后,(1) MOV AX, MOV AX,1200HBX(20103)= 83H,(21200)=1AH,(21201)=B6H,AX寄存器中保存的內(nèi)容是什么。立即尋址 AX=1200H寄存器尋址 AX=0100H(21202)=D1H,(21203)=29H。 MOV AX,(4) MOV AX, MOV AX,(6) MOV AX,直接尋址=2000H*10H+1200H=2
16、1200H AX=0B61AH寄存器間接尋址物理地址=2000H*10H+0100H=20100H AX=5132H1100HBX相對寄存器尋址物理地址=2000H*10H+0100H+1100H=21200H AX=0B61AH BXSI基址變址尋址物理地址=2000H*10H+0100H+02H=20102H AX=8326HMOV BX,10HBX與指令 LEA BX,10HBX的區(qū)別1200H物理地址BX4.試說明指令答:MOV BX,10HBX BX=物理地址為(DS*10H+BX+10H)2字節(jié)單元的內(nèi)容LEA BX,10HBX BX= BX+10H( 地址)5. 假設(shè)(DS)=3
17、000H,(CS)=1000H,(IP)=1500H,(BX)=1000H, 位移量大 DATA=50H (31000H)=1250H, (31050H)=2400H,(31052H)=6000H。確定下列轉(zhuǎn)移指令的轉(zhuǎn)移地址(1) JMP 2500H IP =2500H CS=1000H CS段指令物理地址 =1000H*10H+2500H=12500H(2) JMP BX IP=BX=1000H CS=1000H CS段指令物理地址 =1000H*10H+1000H=11000H(3) JMP WORD PTRBX DS 段物理地址 =3000H*10H+1000H=31000HIP=(31
18、000H)=1250H CS=1000H: CS 段指令物理地址 =1000H*10H+1250H= 11250H(4) JMP DWORD PTRBX+DATA DS 段物理地址 =3000H*10H+1000H+50H=31050H IP=(31050H)=2400H CS=(31052H)=6000H CS 段指令物理地址 =6000H*10H+2400H=62400H6. 設(shè)堆棧指針SP的初值為2500H, (AX)=1234H,(BX)=5678H。執(zhí)行指令PUSH AX后, (SP)=?,再執(zhí)行指令PUSH BX及 POP AX之后,(SP)=? (AX)=? (BX)=?PUSH
19、 AX SP=SP-2=2500H-2=24FEHPUSH BX SP=SP-2=24FEH-2=24FCHPOP AX SP=SP+2=24FCH+2=24FEH AX=5678H BX=5678H7. 分析下列指令的正誤,對于錯誤的指令要說明原因并加以改正。(1) MOV AH , BX錯 數(shù)據(jù)結(jié)構(gòu)不同MOV AX , BX或 MOV AH, BL(2) MOV BX , SI錯 二存儲單元間不允許直接傳送數(shù)據(jù) MOV AX, SI MOV BX , AX(3) MOV AX , SIDI錯 源區(qū)都為變址寄存器 MOV AX, BXDI或 MOV AX, BXSI(4) MOV MYDAT
20、BXSI , ES:AX 錯 段前綴應(yīng)指向存儲單元 MOV ES:MYDATBXSI , AX(5) MOV BYTE PTRBX , 1000錯 數(shù)據(jù)結(jié)構(gòu)不同 MOV BYTE PTRBX , 100(6) MOV BX,OFFSET MAYDATSI錯 MAYDAT為符號地址 MOV BX,OFFSET MAYDATMOV CS,AX 錯 不允許給 CS賦值 MOV DS,AX(8) MOV DS , BP 錯 賦值方式不對 MOV AX , BP MOV DS, AX8. 設(shè)VAR1 VAR2為字變量,LAB為標(biāo)號,分析下列指令的錯誤之處并加以改正。(1) ADD VAR1 ,VAR2錯
21、 VAR1、VAR2為字變量(代表2個存儲單元地址)MOV AX, VAR2 ADD VAR1, AX(2) MOV AL , VAR2 錯 數(shù)據(jù)結(jié)構(gòu)不同 MOV AX , VAR2(3) SUB AL , VAR1 錯 數(shù)據(jù)結(jié)構(gòu)不同 SUB AX , VAR1(4) JMP LABSI錯 LAB 為標(biāo)號地址 JMP LAB(5) JNZ VAR1錯 VAR1 為字變量不是標(biāo)號地址JNZ LAB9. 已知(AL)=6CH, (BL)=0A9H,執(zhí)行指令 ADD AL,BL 后,AF、CF、OF PF、SF、和 ZF 的值各為多少?ADD AL,BL AL=6CH+ A9H=15H AF=1 C
22、F=1 OF=0 PF=0 SF=0 ZF=010. 試判斷下列程序執(zhí)行后,(BX)=的內(nèi)容。MOV CL,5MOV BX,01C9H BX=01C9HROL BX,1 BX=0392HRCR BX,CL BX=201CH11. 寫出能夠完成下列操作的8086CPU指令。(1) 把 4629H 傳送給 AX 寄存器;MOV AX, 4629H(2) 從 AX寄存器中減去 3218H;SUB AX, 3218H(3) 把BUF的偏移地址送入 BX中。LEA BX, BUF12. 根據(jù)以下要求寫出相應(yīng)的匯編語言指令。(1) 把BX和DX寄存器的內(nèi)容相加,結(jié)果存入DX寄存器中;ADD DX, BX(
23、2) 用BX和SI的基址變址尋址方式,把存儲器中的一個字節(jié)與AL內(nèi)容相加,并保存在 AL寄存器中;ADD AL, BXSI(3) 用寄存器BX和位移量21B5H的變址尋址方式把存儲器中的一個字和(CX)相加,并把結(jié)果送回存儲器單元中; ADD WORD PTR BX+21B5H, CX(4) 用位移量2158H的直接尋址方式把存儲器中的一個字與數(shù)3160H相加,并把結(jié)果送回該存儲器中;ADD WORD PTR 2158H, 3160H(5)把數(shù)25H與(AL)相加,結(jié)果送回寄存器 AL中。 ADD AL, 25H13. 按下列要求寫出相應(yīng)的指令或程序段。(1) 使BL寄存器中的高、低四位互換;
24、MOV CL, 4 ROL 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. 執(zhí)行以下兩條指令后,標(biāo)志寄存器FLAGS的六個狀態(tài)為各為何值?MOV AX,95C8HADD AX,8379H AX=1941H AF=1 CF=1 OF=1 PF=1 SF=0 ZF=015. 若(AL)=85H,
25、(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= -2091AX=0F7D5H有符號數(shù)相乘)第4章習(xí)題和解答1.請分別用DB DW DD偽指令寫出在 DATA開始的連續(xù)8個單元中依次存放數(shù)據(jù)55H 66H 77H、88H的數(shù)據(jù)定義語句。11H、22H 33H44H、DATADB 11H,22H,33H,44H,55H,66H,77H,88HDATADW 1122H,3344H, 5566H,7788HDATA110
26、HDATADD 11223344H,55667788H2.若程序的數(shù)據(jù)段定義如下,寫出各指令語句獨(dú)立執(zhí)行后的結(jié)果:20H30HDSEGSEGMENTDATA2DATA1DB10H, 20H, 30H ;3DATA2DWSTRING DB10 DUP123;20;3個字節(jié)(數(shù)據(jù)為 10H,20H,30H),地址 0000H-0002H個字節(jié)(數(shù)據(jù)全為未知數(shù)),地址0003H-0016H個字節(jié)(數(shù)據(jù)為 31H,32H,33H),地址 0017H-0019HDSEGENDSSTRING(1) MOVAL , DATA1AL=10H31H32H(2) MOVBX , OFFSETDATA2 BX=00
27、03H33H0000H0001H0002H0003H0004HIII0015H0016H0017H0018H0019HLEASI ,STRINGSI=0017HADD BX,SIBX=001AHMOV AL , SI+2AL=33H3.試編寫求兩個無符號雙字長數(shù)之和的程序。兩數(shù)分別在MEM1和MEM2單元中,和放在 SUM單元。DATAS SEGMENTMEM1 DD 82349678HMEM2 DD 9876A432HSUM DD ?DATAS ENDSCODES SEGMENTASSUME CS:CODES, DS:DATASSTART: MOV AX, DATASMEM178H96H34
28、H82HMEM232HA4H76H98H0000H0001H0002H0003H0004H0005H0006H0007HMOV DS, AX取定義的DS段的段地址 DSLEA BX,MEM1取MEM偏移地址BX=0000HLEA SI, MEM2 ;LEA DI, SUM ;MOV AX, WORD PTR BX取MEM偏移地址SI=0004H取SUM偏移地址 DI=0008H將0000H地址的內(nèi)容 9678H AX=9678HADD AX, WORD PTR SI ;AX+0004H地址的內(nèi)容 A432H AX=3AAAH,有進(jìn)位 CF=1MOV WORD PTR DI, AX將AX的內(nèi)容
29、偏移地址DI=0008H字單元中INC BX;BX=BX+1=0001HINC BX;BX=BX+1=0002HINC SI;SI=SI+1=0005HINC SI;SI=SI+1=0006HINC DI;DI=DI+1=0009HINC DI;DI=DI+1=000AHMOV AX,WORD PTR BX;將0002H地址的內(nèi)容 8234H AX=8234HADC AX,WORD PTR SI ;AX+0006H地址的內(nèi)容 9876H+CF AX=1AABH,有進(jìn)位 CF=1MOV WORD PTR DI,AX ;將AX的內(nèi)容 偏移地址 DI=000AH字單元中MOV AH, 4CHINT
30、21HCODES ENDSEND START4. 試編寫程序,測試 AL寄存器的第4位是否為0?TEST AL, 00001000BJZ LP5. 編寫程序,將 BUFFER中的一個8位二進(jìn)制數(shù)轉(zhuǎn)換為 ASCII碼,并按位數(shù)高低順序存放在ANSWE開始的內(nèi)存單元中。DATA SEGMENTBUFFER DB 3CHANSWER DB ?, ?DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATASTART: MOV AX, DATAMOV DS, AXMOV AL, BUFFERMOV CL, 4;AL=3CHSHR AL, CL;CMP AL,9;將AL內(nèi)容
31、右移4位AL=03H先取高四位 3JG LP1;若AL內(nèi)容大于9,說明AL內(nèi)容在A-F之間ADD AL,30H;JMP LP2否則AL內(nèi)容小于9,將AL內(nèi)容轉(zhuǎn)換為 ASCII碼即AL+30H-ALLP1: ADD AL,37H ;將 AL 內(nèi)容轉(zhuǎn)換為 ASCII 碼即 AL+37H-AL (如 0CH+37H=43H大寫 C 的 ASCII 碼)LP2: MOV ANSWER, AL ;將結(jié)果存入 ANSWE第一個單元MOV AL, BUFFER ;AL=3CHAND AL, 0FH ; 取AL內(nèi)容低四位 CCMP AL,9 ;JG LP3 ;若AL內(nèi)容大于9,說明AL內(nèi)容在A-F之間ADD
32、AL,30H ; 否則AL內(nèi)容小于9JMP LP4 ; 將AL內(nèi)容轉(zhuǎn)換為 ASCII碼即AL+30H-ALLP3: ADD AL,37H ;將AL內(nèi)容轉(zhuǎn)換為ASCII碼LP4: MOV ANSWER+1, AL ;將結(jié)果存入 ANSWE第二個單元MOV AH, 4CHINT 21HCODE ENDSEND START6. 假設(shè)數(shù)據(jù)項(xiàng)定義如下:DATA1 DB HELLO GOOD MORNINGDATA2 DB 20 DUP(?)用串操作指令編寫程序段,使其分別完成以下功能:i.從左到右將DATA1中的字符串傳送到 DATA2中;LEA SI, DATA1;SI=0000HLEA DI, DA
33、TA2;DI=0014HDATA148H0000H H45H0001H E4CH0002H L4CH0003H LP4FH0004H O21H0005H !20H0006H47H0007H GQ4FH0008H O匸4FH0009H O44H000AH D20H000BH4DH000CH M4FH000DH O52H000EH R4EH000FH N49H0010H I4EH0011H N47H0012H G21H0013H !DATA2?0014H111?1110026HMOV CX, 20 ;20 個字符ii.REP MOVSB ; 將DATA1中的字符串傳送到 DATA2中 傳送完后,比
34、較 DATA俐DATA2中的內(nèi)容是否相同;LEA SI, DATA1LEA DI, DATA2MOV CX, 20 ;20個字符REPE CMPSB ;CXJNZ STOP不為零時,字符相同繼續(xù)比較,不同指令停止若不同- STOPiii.MOV AX, WORD PTR DATA1+2將AX的內(nèi)容存入DATA2+5開始的字節(jié)單兀中。MOVWORD PTR DATA2+5, AX執(zhí)行卜列指令后,AX寄存器中的內(nèi)容是多少?TABLEDW 10,20, 30, 40, 50ENTRYDW 3MOVBX ,OFFSETTABLE ;BX=0000H(地址)1ADD BX ,ENTRY;BX=0003H
35、MOV AXBX;AX=1E00H把DATA1中的第iv.7.否則都相同3和第4個字節(jié)裝入AXTABLE0AH00H14H00Hr 1EH00H28H00H32H00HENTRY03H00H0000H0001H0002H0003H0004H0005H0006H0007H0008H0009H000AH000BH8. 編寫程序段,將 STRING1中的最后20個字符移到STRING2中(順序不變)。DATA SEGMENTSTRING1 DB “0123456789ABCDEFGHIJKLMNOPQRSTUVWVXYZ36個字符 ASCII 碼STRING2 DB 20 DUPL EQU STRI
36、NG2- STRING1 ; STRING1 的長度=36DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA, ES:DATASTART: MOV AX, DATAMOV DS, AXMOV ES, AXLEA SI, STRING1 ; 取 STRING1 串的首地址=0000HLEA DI, STRING2 ;取 STRING2串的首地址=0024H=36MOV CX, 20 MOV AX, L SUB AX, CX ADD SI, AX REP MOVSB;AX=36=0024H;AX=36-20=0024H-0014H=0010H;SI=SI+AX
37、=0000H+0010H=0010HMOV AH, 4CHINT 21HCODE ENDSEND START9.假設(shè)一個48位數(shù)存放在DX AX BX中,試編寫程序段,將該 48位數(shù)乘2。CODE SEGMENTASSUME CS:CODESTART: MOV BX, 9ABCH ;設(shè) DX AX BX=1234 5678 9ABCHMOV AX, 5678H ;DX AX BX*2= 將 DX AX BX 左移一次MOV DX, 1234HSHL BX, 1;BX=BX*2=3578H, CF=1RCL AX, 1;AX=AX*2+CF=ACF1H, CF=0RCL DX, 1;DX=DX*
38、2+CF=2468H, CF=0MOV AH, 4CHINT 21HCODE ENDSEND START10. 試編寫程序,比較 AX, BX CX中帶符號數(shù)的大小,并將最大的數(shù)放在AX中。CODE SEGMENTASSUME CS:CODESTART: MOV AX, -5MOV BX, 6MOV CX, 10CMP AX, BXJGE LL1XCHG AX, BXLL1: CMP AX, CXJGE LL2XCHG AX, CXLL2: MOV AH, 4CHINT 21HCODE ENDSEND STARTCPU將數(shù)11. 若接口 03F8H的狀態(tài)的數(shù)據(jù)(bl)和(b3)同時為1,表示接
39、口 03F8H有準(zhǔn)備好的8位數(shù)據(jù),當(dāng) 據(jù)取走后, b1 和 b3 就不再同時為 1 了。僅當(dāng)又有數(shù)據(jù)準(zhǔn)備好時才再同時為 1。試編寫程序,從上述接口讀入20個數(shù)據(jù),并順序放在 DATA開始的地址中。DATAS SEGMENTDATA DB 20 DUP(?)DATAS ENDSCODES SEGMENTASSUME CS:CODES, DS:DATASSTART: MOV AX, DATAMOV DS, AXMOV CX, 20LEA BX, DATAMOV DX, 03F8HLOP: IN AL, DX ;讀接口狀態(tài)NOT AL ;將AL內(nèi)容取反,若b1=1和b3=1取反后全為0TEST AL
40、, 00001010b ; 判斷接口 03F8H的狀態(tài)的數(shù)據(jù)(b1)和(b3)是否同時為JNZ LOP ;若相與的結(jié)果不為零表示接口沒有準(zhǔn)備好,繼續(xù)讀狀態(tài)IN AL, DX ;若相與的結(jié)果為零表示接口準(zhǔn)備好 ;讀接口數(shù)據(jù)MOV BX, AL ;存數(shù)據(jù)INC BXDEC CXJNZ LOP;從接口讀入20個數(shù)據(jù)MOV AH, 4CHINT 21HCODES ENDSEND START12. 畫圖說明下列語句分配的存儲空間及初始化的數(shù)據(jù)值(1) DATA1 DB BYTE, 12,12H, 2 DUP(0,?,3) DATA2 DW 2 DUP(0,1,2),?, -5,256H13. 請用子程序
41、結(jié)構(gòu)編寫如下程序:從鍵盤輸入一個二位十進(jìn)制的月份數(shù)(0112),然后顯示出響應(yīng)的英文縮寫名。14. 給出下列等值語句:LPHAEQU 100BETAEQU 25GRAMM EQU 4 試求出下列表達(dá)式的值:(1) ALPHA*100+BETA;MOV AL, LPHAMOV BL, 100MOV CX, BETAMUL BL ;AL*BL-AXADD AX, CX(2) (ALPHA + 4)*BETA-2MOV AL, LPHAADD AL, 4MOV BL, BETAMUL BL ;AL*BL-AXSUB AX, 2(3) (BETA/3)MOD 5 ;MOV AX, BETAMOV BL
42、, 3DIV BLMOV AL, AL MOD 5 GRAMM OR 3MOV AL, GRAMMDATA SEGMENTDATA1DB10H, 34H, 07H, 09HDATA2DW2 DUP(42H)DATA3DBHELLODATA4EQU 1215.圖示以下數(shù)據(jù)段在存儲器中的存放形式。DATA142H0000HDATA20000H0000H59H0001H0001H0002H55H0002H0002H0004H45H0003H0000H0006H0CH0004H0001H0008H12H0005H0002H000AH00H0006H?000CH?0007HFFFB000DH03H000
43、8H0256H000EH00H0009H0010H?H000AH0012H03H000BH0014HDATA110H0000H34H0001H07H0002H09H0003HDATA242H0004H00H0005H42H0006H00H0007HDATA348H0008H45H0009H4CH000AH4CH000BH4FH000CHDATA5CDH000DHABH000EH00H000FH00H0010HOR AL, 3DATA5 DD 0ABCDHDATA ENDS16. 閱讀下邊的程序段,試說明它實(shí)現(xiàn)的功能是什么?DATAS SEGMENTDATA1 DB ABCDEFGDATAS E
44、NDSCODES SEGMENTASSUME CS:CODES, DS:DATASSTART: MOV AX, DATAS MOV DS, AX MOV BX, OFFSET MOV CX, 7NEXT: MOV AH, 2 ;DOS MOV AL, BX XCHG AL, DL ; INC BX INT 21H LOOP NEXT ; MOV AH, 4CH INT 21HDATA1 ;BX 取 DATA1 地址,BX=OOOOH功能 2將要顯示字符的 ASCII 送 DL功能是顯示字符 ABCDEFGCODES ENDSEND START17.編寫一程序段,把BUFFERS始的100個字節(jié)
45、的內(nèi)存區(qū)域初始化為 0AAH。55H、0AAH 55H 0AAH 、55H、DATAS SEGMENTBUFFER DB 100 DUP(?)DATAS ENDSCODES SEGMENTASSUMECS:CODES, DS:DATASSTART: MOV AX, DATASMOV DS, AXLEA BX, BUFFER ;BX取 BUFFER地址 , BX=OOOOHMOV CX, 50LP: MOV BX,55HINC BXMOV BX.0AAHINC BXDEC CXJNZ LPMOV AH, 4CHINT 21HCODES ENDSEND START18. 有 16 個字節(jié),編程序?qū)?/p>
46、其中第 2、5、9、14、15個字節(jié)內(nèi)容加 3,其余字節(jié)內(nèi)容乘 2(假定運(yùn)算不會溢出)。DATAS SEGMENTNUM0 DB1,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 ENDSCODES SEGMENTASSUMECS:CODES,DS:DATASSTART : MOVAX, DATASMOVDS, AXLEASI, L1LEADI, L2MOVCX, 5LP1: LEABX,NUM0ADDBL,SISUBBL,1ADDBYTE PTRBX, 3INC SILOOP LP1MOVCX, 11LP2: LEABX,NUM0ADDBL,DISUBBL,1
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 校園文化建設(shè)與學(xué)校發(fā)展戰(zhàn)略
- 行為習(xí)慣與孩子未來家庭教育的長遠(yuǎn)影響
- DB6103T 80-2025獼猴桃園覆土栽培香菇技術(shù)規(guī)范
- 不可撤銷物業(yè)服務(wù)合同范例
- 中保人壽幸福家園保險合同范本(A)
- 臨街旺鋪?zhàn)赓U合同樣本
- 二手車買賣合同(權(quán)威版)
- 業(yè)務(wù)拓展與培訓(xùn)合作合同
- 上海市物流運(yùn)輸合同范本
- 個人信用擔(dān)保貸款合同范文
- 七年級上學(xué)期歷史期末考試模擬卷02(原卷版)
- 橋梁建設(shè)施工組織設(shè)計(jì)方案
- (新版)中國動態(tài)血壓監(jiān)測基層應(yīng)用指南(2024年)
- 礦物加工工程基礎(chǔ)知識單選題100道及答案解析
- 2024年同等學(xué)力申碩英語考試真題
- 浙江省杭州市2024年中考語文試卷(含答案)
- 世說新語原文及翻譯-副本
- 電力通信光纜檢修標(biāo)準(zhǔn)化作業(yè)指導(dǎo)書
- 安全隱患舉報獎勵制度
- 工貿(mào)行業(yè)企業(yè)安全生產(chǎn)標(biāo)準(zhǔn)化建設(shè)實(shí)施指南
- T-CACM 1560.6-2023 中醫(yī)養(yǎng)生保健服務(wù)(非醫(yī)療)技術(shù)操作規(guī)范穴位貼敷
評論
0/150
提交評論