版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(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)16=(0010
2、 0001 0100.0001 0010 0110)BCD16.將下列二進(jìn)制數(shù)分別轉(zhuǎn)化為十進(jìn)制數(shù)和十六進(jìn)制數(shù)。(1)10110101= 181=0B5H(2)11001011= 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.3828125(4)2DF.2H=0010
3、 1101 1111.0010B=735.12518.若X-107,Y+74按8位二進(jìn)制可寫出:。X補(bǔ)95H ,Y補(bǔ)=4AH , X +Y補(bǔ)=0DFH,X-Y補(bǔ)=4BH。19.X34AH,Y8CH。問:有三位和兩位十六進(jìn)制數(shù)X和Y,(1)若X,Y是純數(shù)(無符號數(shù)),則:X+Y3D6H;X-Y2BEH。(2)若X,Y是有符號數(shù),則:X+Y2D6 H;X-Y=3BEH。20.已知X85,Y76(均為十進(jìn)制數(shù)),求-85補(bǔ),-76補(bǔ)。并利用補(bǔ)碼的加、減法運(yùn)算規(guī)則計(jì)算X-Y補(bǔ),-X+Y補(bǔ),-X-Y補(bǔ)。結(jié)果的各機(jī)器數(shù)及其真值請用十六進(jìn)制表示,并由運(yùn)算過程中的標(biāo)志位OF判斷結(jié)果是否溢出。 答:X補(bǔ)=85補(bǔ)
4、=55H,Y補(bǔ)=76補(bǔ)=4CH , -X補(bǔ)=-85補(bǔ)=0ABH, -Y補(bǔ)=-76補(bǔ)=0B4HX-Y補(bǔ)=X補(bǔ)+-Y補(bǔ)=55H+B4H=09H, OF=0-X+Y補(bǔ)=-X補(bǔ)+Y補(bǔ)=ABH+4CH=0F7H, OF=0-X-Y補(bǔ)=-X補(bǔ)+-Y補(bǔ)=ABH+B4H=5FH, OF=121.(1) 設(shè)X補(bǔ)10101010B,則1/2X補(bǔ)=1/2X補(bǔ)=11010101B(2) 設(shè)X補(bǔ)11010100B,則-1/4X補(bǔ)=1/4X補(bǔ)補(bǔ)=11110101補(bǔ)=00001011B第2章 習(xí)題和解答1. 8086是多少位的微處理器?為什么? 答:8086是高性能的第三代微處理器,是Intel系列的16位微處理器。2.
5、EU與BIU各自的功能是什么?如何協(xié)同工作?答:EU其主要功能是執(zhí)行命令。BIU其主要功能是負(fù)責(zé)完成CPU與存儲器或I/O設(shè)備之間的數(shù)據(jù)傳送??偩€接口部件BIU和執(zhí)行部件EU并不是同步工作的, 兩者的動作管理遵循如下原則:每當(dāng)8086的指令隊(duì)列中有2個(gè)空字節(jié),BIU就會自動把指令取到指令隊(duì)列中。 而同時(shí)EU從指令隊(duì)列取出一條指令,并用幾個(gè)時(shí)鐘周期去分析、執(zhí)行指令。 當(dāng)指令隊(duì)列已滿,而且EU對BIU又無總線訪問請求時(shí),BIU便進(jìn)入空閑狀態(tài)。3. 8086/8088微處理器內(nèi)部有那些寄存器,它們的主要作用是什么?答:8086CPU內(nèi)有14個(gè)16位的寄存器。其中有4個(gè)16位通用寄存器AX、BX、CX
6、、DX,2個(gè)16位指針寄存器SP、BP,2個(gè)16位變址寄存器SI、DI,4個(gè)16位段寄存器CS、DS、SS、ES,1個(gè)16位指令指針寄存器IP及1個(gè)16位標(biāo)志寄存器FLAGS。寄存器是有限存貯容量的高速存貯部件,它們可用來暫存指令、數(shù)據(jù)和位址。4. 8086對存儲器的管理為什么采用分段的辦法?答:8086 CPU有20位地址總線,它可尋址的存儲空間為1MB。而8086指令給出的地址編碼只有16位,指令指針和變址寄存器也都是16位的,所以CPU不能直接尋址1 MB空間,為此采用分段管理。5. 在8086中,邏輯地址、偏移地址、物理地址分別指的是什么?具體說明。答:邏輯地址=物理地址:偏移地址;偏
7、移地址=相對于段起始地址的距離; 物理地址=段地址*10H+偏移地址6. 給定一個(gè)存放數(shù)據(jù)的內(nèi)存單元的偏移地址是20C0H,(DS)=0C00EH,求出該內(nèi)存單元的物理地址。答: 物理地址=段地址*10H+偏移地址=0C00E0H+20C0H=0C21A0H7. 8086/8088為什么采用地址/數(shù)據(jù)引線復(fù)用技術(shù)?答:8086/8088 CPU具有40條引腳,采用分時(shí)復(fù)用地址數(shù)據(jù)總線,從而使8086/8088 CPU用40條引腳實(shí)現(xiàn)20位地址、16位數(shù)據(jù)、控制信號及狀態(tài)信號的傳輸。8. 8086與8088的主要區(qū)別是什么?答:8086有16位數(shù)據(jù)線,8088有8位數(shù)據(jù)線。9. 怎樣確定8086
8、的最大或最小工作模式?答:8088/8086CPU的引腳固定接+5V時(shí),CPU處于最小模式下, 引腳固定接地時(shí),CPU處于最大模式下。10. 8086被復(fù)位以后,有關(guān)寄存器的狀態(tài)是什么?微處理器從何處開始執(zhí)行程序?答:復(fù)位信號輸入之后,CPU結(jié)束當(dāng)前操作,并對處理器的標(biāo)志寄存器、IP、DS、SS、ES寄存器及指令隊(duì)列進(jìn)行清零操作,而將CS設(shè)置為0FFFFH。11. 8086基本總線周期是如何組成的?各狀態(tài)中完成什么基本操作?答:一個(gè)基本的總線周期由4個(gè)T狀態(tài)組成,我們分別稱為T1-T44個(gè)狀態(tài),在每個(gè)T狀態(tài)下,CPU完成不同的動作。T1狀態(tài):根據(jù)IO/M確定對存貯器或I/O操作,20位地址A0
9、A19信號有效,地址鎖存信號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ū)懀挥行?,使得總線收發(fā)器(驅(qū)動器)可以傳輸數(shù)據(jù)。T3狀態(tài):從存貯器或者I/O端口讀出的數(shù)據(jù)送上數(shù)據(jù)總線(通過)。Tw狀態(tài):若存貯器或外設(shè)速度較慢,不能及時(shí)送上數(shù)據(jù)的話,則通過READY線通知CPU,CPU在的前沿(即結(jié)束末的下降沿)檢測READY,若發(fā)現(xiàn)READY0,則在結(jié)束后自動插入1個(gè)或幾個(gè),并在每個(gè)的前沿處檢測READY,等到READY變高后,則自動脫離進(jìn)入。T4
10、狀態(tài):在與(或)的交界處(下降沿),采集數(shù)據(jù),使各控制及狀態(tài)線進(jìn)入無效。13. 8086中斷分哪兩類?8086可處理多少種中斷?答:中斷共分為兩類:硬件中斷和軟件中斷,8086可處理256種中斷。14. 8086可屏蔽中斷請求輸入線是什么?“可屏蔽”的涵義是什么?答:硬件中斷又可分為兩類:可屏蔽中斷和不可屏蔽中斷。不可屏蔽中斷:由NMI引腳引入,它不受中斷允許標(biāo)志IF的影響,每個(gè)系統(tǒng)中僅允許有一個(gè),都是用來處理緊急情況的,如掉電處理。這種中斷一旦發(fā)生,系統(tǒng)會立即響應(yīng);可屏蔽中斷:由INTR引腳引入,它受中斷允許標(biāo)志IF的影響,也就是說,只有當(dāng)IF1時(shí),可屏蔽中斷才能進(jìn)入,反之則不允許進(jìn)入。15
11、. 中斷向量表的功能是什么?已知中斷類型碼分別是84H和0FAH,它們的中斷向量應(yīng)放在中斷向量表的什么位置?答:中斷向量表存放的是各中斷程序的入口地址即16位偏移地址和16位段地址,只要給出中斷類型碼,可以算出中斷程序在中斷向量表的什么位置:中斷向量表地址=中斷類型碼*4 中斷向量表地址1=84H*4=210H中斷向量表地址2=0FAH*4=3E8H第3章 習(xí)題和解答1. 簡要分析8086的指令格式由哪些部分組成,什么是操作碼?什么是操作數(shù)?尋址和尋址方式的含義是什么?8086指令系統(tǒng)有哪些尋址方式?答:指令由操作碼和操作數(shù)兩部分組成,操作碼表示計(jì)算機(jī)執(zhí)行某種指令功能,操作數(shù)表示操作中所需要的
12、數(shù)據(jù)或者數(shù)據(jù)所在存儲單元的地址。尋址方式是尋找操作數(shù)或操作數(shù)地址的方式。8086提供了七種尋址方式:立即尋址、 寄存器尋址、直接尋址、寄存器間接尋址、 相對寄存器尋址、基址變址尋址和相對基址變址尋址方式。2. 設(shè)(DS)=2000H,(ES)= 2100H,(SS)= 1500H,(SI)= 00A0H,(BX)= 0100H,(BP)= 0010H,數(shù)據(jù)變量VAL的偏移地址為0050H,請指出下列指令的源操作數(shù)字段是什么尋址方式?它的物理地址是多少?(1) MOV AX,21H 立即尋址 物理地址無(2) MOV AX,BX 寄存器尋址 物理地址無(3) MOV AX,1000H 直接尋址
13、物理地址=2000H*10H+1000H=21000H(4) MOV AX,VAL 直接尋址 物理地址=2000H*10H+0050H=20050H(5) MOV AX,BX 寄存器間接尋址 物理地址=2000H*10H+0100H=20100H(6) MOV AX,ES:BX 寄存器間接尋址 物理地址=2100H*10H+0100H=21100H(7) MOV AX,BP 寄存器間接尋址 物理地址=1500H*10H+0010H=15010H(8) MOV AX,SI 寄存器間接尋址 物理地址=2000H*10H+00A0H=200A0H(9) MOV AX,BX+10H 相對寄存器尋址 物
14、理地址=2000H*10H+0100H+10H=20110H(10) MOV AX,VALBX 相對寄存器尋址 物理地址=2000H*10H+0100H+50H=20150H(11) MOV AX,BXSI 基址變址尋址 物理地址=2000H*10H+0100H+A0H=201A0H(12) MOV AX,VALBXSI 相對基址變址尋址 物理地址=2000H*10H+0100H+A0H+50H=201F0H3. 給定寄存器及存儲單元的內(nèi)容為:(DS) = 2000H,(BX) = 0100H,(SI) = 0002H,(20100) =32H,(20101)=51H,(20102) =26H
15、,(20103)= 83H,(21200)=1AH,(21201)=B6H,(21202)=D1H,(21203)=29H。試說明下列各條指令執(zhí)行完后,AX寄存器中保存的內(nèi)容是什么。32H51H26H83H1AHB6HD1H29H20100H20101H20102H20103H21200H21201H21202H21203H(1) MOV AX,1200H 立即尋址 AX=1200H(2) MOV AX,BX 寄存器尋址 AX=0100H(3) MOV AX,1200H 直接尋址 物理地址=2000H*10H+1200H=21200H AX=0B61AH(4) MOV AX,BX 寄存器間接尋
16、址 物理地址=2000H*10H+0100H=20100H AX=5132H(5) MOV AX,1100HBX 相對寄存器尋址 物理地址=2000H*10H+0100H+1100H=21200H AX=0B61AH(6) MOV AX,BXSI 基址變址尋址 物理地址=2000H*10H+0100H+02H=20102H AX=8326H4. 試說明指令MOV BX,10HBX與指令LEA BX,10HBX的區(qū)別 答:MOV BX,10HBX BX=物理地址為(DS*10H+BX+10H)2字節(jié)單元的內(nèi)容LEA BX,10HBX BX= BX+10H(地址)5. 假設(shè)(DS)=3000H,(
17、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=31000H IP=(31000H)=1250H
18、 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 AX SP=SP-2=2500H
19、-2=24FEHPUSH BX SP=SP-2=24FEH-2=24FCHPOP AX SP=SP+2=24FCH+2=24FEH AX=5678H BX=5678H7. 分析下列指令的正誤,對于錯(cuò)誤的指令要說明原因并加以改正。(1) MOV AH,BX 錯(cuò) 數(shù)據(jù)結(jié)構(gòu)不同 MOV AX,BX或 MOV AH,BL(2) MOV BX,SI 錯(cuò) 二存儲單元間不允許直接傳送數(shù)據(jù) MOV AX,SI MOV BX,AX(3) MOV AX,SIDI 錯(cuò) 源區(qū)都為變址寄存器 MOV AX,BXDI 或MOV AX,BXSI(4) MOV MYDATBXSI,ES:AX 錯(cuò) 段前綴應(yīng)指向存儲單元MOV
20、ES:MYDATBXSI,AX(5) MOV BYTE PTRBX,1000 錯(cuò) 數(shù)據(jù)結(jié)構(gòu)不同 MOV BYTE PTRBX,100 (6) MOV BX,OFFSET MAYDATSI 錯(cuò) MAYDAT為符號地址 MOV BX,OFFSET MAYDAT(7) MOV CS,AX 錯(cuò) 不允許給CS賦值 MOV DS,AX(8) MOV DS,BP 錯(cuò) 賦值方式不對 MOV AX,BP MOV DS,AX8. 設(shè)VAR1、VAR2為字變量,LAB為標(biāo)號,分析下列指令的錯(cuò)誤之處并加以改正。(1) ADD VAR1,VAR2 錯(cuò) VAR1、VAR2為字變量(代表2個(gè)存儲單元地址) MOV AX,
21、VAR2 ADD VAR1,AX(2) MOV AL,VAR2 錯(cuò) 數(shù)據(jù)結(jié)構(gòu)不同 MOV AX,VAR2(3) SUB AL,VAR1 錯(cuò) 數(shù)據(jù)結(jié)構(gòu)不同 SUB AX,VAR1(4) JMP LABSI 錯(cuò) LAB為標(biāo)號地址 JMP LAB(5) JNZ VAR1 錯(cuò) VAR1為字變量不是標(biāo)號地址 JNZ LAB 9. 已知 (AL)=6CH, (BL)=0A9H,執(zhí)行指令A(yù)DD AL,BL后,AF、CF、OF、PF、SF、和ZF的值各為多少?ADD AL,BL AL=6CH+ A9H=15H AF=1 CF=1 OF=0 PF=0 SF=0 ZF=010. 試判斷下列程序執(zhí)行后,(BX)=的
22、內(nèi)容。 MOV CL,5 MOV BX,01C9H BX=01C9HROL BX,1 BX=0392HRCR BX,CL BX=201CH 11. 寫出能夠完成下列操作的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(2) 用BX和SI的基址變址尋址方式,把存儲器中的一個(gè)字節(jié)與AL內(nèi)容相加,并保存在AL
23、寄存器中; ADD AL, BXSI(3) 用寄存器BX和位移量21B5H的變址尋址方式把存儲器中的一個(gè)字和(CX)相加,并把結(jié)果送回存儲器單元中; ADD WORD PTR BX+21B5H, CX(4) 用位移量2158H的直接尋址方式把存儲器中的一個(gè)字與數(shù)3160H相加,并把結(jié)果送回該存儲器中; ADD WORD PTR 2158H, 3160H(5) 把數(shù)25H與(AL)相加,結(jié)果送回寄存器AL中。 ADD AL, 25H13. 按下列要求寫出相應(yīng)的指令或程序段。(1) 使BL寄存器中的高、低四位互換; MOV CL, 4 ROL BL, CL(2)屏蔽AX寄存器中的b10和b5位;
24、AND AX, 1111 1011 1101 1111B (3)分別測試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的六個(gè)狀態(tài)為各為何值? MOV AX,95C8HADD AX,8379H AX=1941H AF=1 CF=1 OF=1 PF=1 SF=0 ZF=0 15. 若(AL)=85H,(BL)=11H,在分別執(zhí)行指令MUL和IMUL后,其結(jié)果是多少?MUL BL
25、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個(gè)單元中依次存放數(shù)據(jù)11H、22H、33H、44H、55H、66H、77H、88H的數(shù)據(jù)定義語句。DATA DB 11H,22H,33H,44H,55H,66H,77H,88H10H20H30H?31H32H33H0000H0001H0002H0003H0004H0015H0016H0017H0018H0019HDATA1S
26、TRINGDATA2DATA DW 1122H,3344H, 5566H,7788HDATA DD 11223344H, 55667788H2. 若程序的數(shù)據(jù)段定義如下,寫出各指令語句獨(dú)立執(zhí)行后的結(jié)果: DSEGSEGMENTDATA1DB10H,20H,30H ;3個(gè)字節(jié)(數(shù)據(jù)為10H,20H,30H),地址0000H-0002HDATA2DW10DUP(?) ;20個(gè)字節(jié)(數(shù)據(jù)全為未知數(shù)),地址0003H-0016HSTRINGDB123 ;3個(gè)字節(jié)(數(shù)據(jù)為31H,32H,33H),地址0017H-0019HDSEGENDS (1) MOV AL,DATA1 AL=10H(2) MOV B
27、X,OFFSET DATA2 BX=0003H(3) LEA SI,STRING SI=0017H ADD BX,SI BX=001AH MOV AL,SI+2 AL=33H 3. 試編寫求兩個(gè)無符號雙字長數(shù)之和的程序。兩數(shù)分別在MEM1和MEM2單元中,和放在SUM單元。78H96H34H82H32HA4H76H98H0000H0001H0002H0003H0004H0005H0006H0007HMEM1MEM2 DATAS SEGMENT MEM1 DD 82349678H MEM2 DD 9876A432H SUM DD ? DATAS ENDS CODES SEGMENT ASSUME
28、 CS:CODES, DS:DATAS START: MOV AX, DATAS MOV DS, AX ;取定義的DS段的段地址DSLEA BX,MEM1 ;取MEM1偏移地址BX=0000H LEA SI, MEM2 ;取MEM2偏移地址SI=0004H LEA DI, SUM ;取SUM偏移地址DI=0008H MOV AX, WORD PTR BX ;將0000H地址的內(nèi)容9678HAX=9678H ADD AX, WORD PTR SI ;AX+0004H地址的內(nèi)容A432HAX=3AAAH, 有進(jìn)位CF=1 MOV WORD PTR DI, AX ;將AX的內(nèi)容偏移地址DI=0008
29、H字單元中 INC BX ;BX=BX+1=0001H INC BX ;BX=BX+1=0002H INC SI ;SI=SI+1=0005H INC SI ;SI=SI+1=0006H INC DI ;DI=DI+1=0009H INC DI ;DI=DI+1=000AH MOV AX,WORD PTR BX ;將0002H地址的內(nèi)容8234HAX=8234H ADC AX,WORD PTR SI ;AX+0006H地址的內(nèi)容9876H+CFAX=1AABH, 有進(jìn)位CF=1 MOV WORD PTR DI,AX ;將AX的內(nèi)容偏移地址DI=000AH字單元中 MOV AH, 4CH INT
30、 21H CODES ENDS END START 4. 試編寫程序,測試AL寄存器的第4位是否為0? TEST AL, 00001000B JZ LP 5. 編寫程序,將BUFFER中的一個(gè)8位二進(jìn)制數(shù)轉(zhuǎn)換為ASCII碼,并按位數(shù)高低順序存放在ANSWER開始的內(nèi)存單元中。DATA SEGMENTBUFFER DB 3CHANSWER DB ?, ? DATA ENDS CODE SEGMENT ASSUME CS:CODE, DS:DATA START: MOV AX, DATA MOV DS, AXMOV AL, BUFFER ;AL=3CHMOV CL, 4SHR AL, CL ;將A
31、L內(nèi)容右移4位AL=03H,先取高四位3 CMP AL,9 ;JG LP1 ;若AL內(nèi)容大于9,說明AL內(nèi)容在A-F之間ADD AL,30H ;否則AL內(nèi)容小于9,將AL內(nèi)容轉(zhuǎn)換為ASCII碼即AL+30H-ALJMP LP2LP1:ADD AL,37H ;將AL內(nèi)容轉(zhuǎn)換為ASCII碼即AL+37H-AL(如0CH+37H=43H大寫C的ASCII碼)LP2:MOV ANSWER, AL ;將結(jié)果存入ANSWER第一個(gè)單元MOV AL, BUFFER ;AL=3CHAND AL, 0FH ; 取AL內(nèi)容低四位C 48H45H4CH4CH4FH21H20H47H4FH4FH44H20H4DH4F
32、H52H4EH49H4EH47H21H?0000H0001H0002H0003H0004H0005H0006H0007H0008H0009H000AH000BH000CH000DH000EH000FH0010H0011H0012H0013H0014H0026HDATA1HELLO!GOODMORNING!DATA2CMP AL,9 ;JG LP3 ;若AL內(nèi)容大于9,說明AL內(nèi)容在A-F之間ADD 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,
33、 AL ;將結(jié)果存入ANSWER第二個(gè)單元 MOV AH, 4CH INT 21H CODE ENDS END START 6. 假設(shè)數(shù)據(jù)項(xiàng)定義如下:DATA1DBHELLO! GOOD MORNING!DATA2DB20DUP(?) 用串操作指令編寫程序段,使其分別完成以下功能:i.從左到右將DATA1中的字符串傳送到DATA2中;LEA SI, DATA1 ;SI=0000HLEA DI, DATA2 ;DI=0014HMOV CX, 20 ;20個(gè)字符REP MOVSB ; 將DATA1中的字符串傳送到DATA2中 ii.傳送完后,比較DATA1和DATA2中的內(nèi)容是否相同; LEA S
34、I, DATA1LEA DI, DATA2MOV CX, 20 ;20個(gè)字符 REPE CMPSB ;CX不為零時(shí),字符相同繼續(xù)比較,不同指令停止 JNZ STOP ;若不同- STOP0AH00H14H00H1EH00H28H00H32H00H03H00H0000H0001H0002H0003H0004H0005H0006H0007H0008H0009H000AH000BHTABLEENTRY ;否則都相同iii.把DATA1中的第3和第4個(gè)字節(jié)裝入AX; MOV AX, WORD PTR DATA1+2iv.將AX的內(nèi)容存入DATA2+5開始的字節(jié)單元中。 MOV WORD PTR DAT
35、A2+5, AX7. 執(zhí)行下列指令后,AX寄存器中的內(nèi)容是多少? TABLEDW 10,20,30,40,50 ENTRYDW 3 MOVBX,OFFSETTABLE ;BX=0000H(地址) ADDBX,ENTRY ;BX=0003HMOVAX,BX ;AX=1E00H8. 編寫程序段,將STRING1中的最后20個(gè)字符移到STRING2中(順序不變)。DATA SEGMENTSTRING1 DB “0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ” ;36個(gè)字符ASCII碼STRING2 DB 20 DUP(?)L EQU STRING2- STRING1 ; S
36、TRING1的長度=36DATA ENDSCODE SEGMENT ASSUME CS:CODE, DS:DATA, ES:DATASTART: MOV AX, DATA MOV DS, AX MOV ES, AXLEA SI, STRING1 ;取STRING1串的首地址=0000HLEA DI, STRING2 ;取STRING2串的首地址=0024H=36MOV CX, 20MOV AX, L ;AX=36=0024HSUB AX, CX ;AX=36-20=0024H-0014H=0010HADD SI, AX ;SI=SI+AX=0000H+0010H=0010HREP MOVSBM
37、OV AH, 4CHINT 21H CODE ENDS END START 9. 假設(shè)一個(gè)48位數(shù)存放在DX:AX:BX中,試編寫程序段,將該48位數(shù)乘2。 CODE SEGMENT ASSUME CS:CODE START: MOV BX, 9ABCH ;設(shè)DX AX BX=1234 5678 9ABCH MOV AX, 5678H ;DX AX BX*2=將DX AX BX左移一次 MOV DX, 1234H SHL BX, 1 ;BX=BX*2=3578H, CF=1 RCL AX, 1 ;AX=AX*2+CF=ACF1H, CF=0 RCL DX, 1 ;DX=DX*2+CF=2468
38、H, CF=0 MOV AH, 4CHINT 21H CODE ENDS END START10. 試編寫程序,比較AX,BX,CX中帶符號數(shù)的大小,并將最大的數(shù)放在AX中。 CODE SEGMENT ASSUME CS:CODESTART: MOV AX, -5 MOV BX, 6 MOV CX, 10CMP AX, BX JGE LL1 XCHG AX, BXLL1: CMP AX, CX JGE LL2 XCHG AX, CXLL2: MOV AH, 4CHINT 21H CODE ENDS END START11. 若接口03F8H的狀態(tài)的數(shù)據(jù)(b1)和(b3)同時(shí)為1,表示接口03F
39、8H有準(zhǔn)備好的8位數(shù)據(jù),當(dāng)CPU將數(shù)據(jù)取走后,b1和b3就不再同時(shí)為1了。僅當(dāng)又有數(shù)據(jù)準(zhǔn)備好時(shí)才再同時(shí)為1。試編寫程序,從上述接口讀入20個(gè)數(shù)據(jù),并順序放在DATA開始的地址中。DATAS SEGMENT DATA DB 20 DUP(?)DATAS ENDSCODES SEGMENT ASSUME CS:CODES, DS:DATAS START: MOV AX, DATA MOV DS, AXMOV CX, 20 LEA BX, DATAMOV DX, 03F8H LOP: IN AL, DX ;讀接口狀態(tài) NOT AL ;將AL內(nèi)容取反,若b1=1和b3=1取反后全為0 TEST AL,
40、 00001010b ;判斷接口03F8H的狀態(tài)的數(shù)據(jù)(b1)和(b3)是否同時(shí)為1 JNZ LOP ;若相與的結(jié)果不為零表示接口沒有準(zhǔn)備好,繼續(xù)讀狀態(tài) IN AL, DX ;若相與的結(jié)果為零表示接口準(zhǔn)備好;讀接口數(shù)據(jù) MOV BX, AL ;存數(shù)據(jù) INC BXDEC CX JNZ LOP ;從接口讀入20個(gè)數(shù)據(jù) MOV AH, 4CH INT 21HCODES ENDS END START12. 畫圖說明下列語句分配的存儲空間及初始化的數(shù)據(jù)值(1) DATA1DBBYTE,12,12H,2 DUP(0,?,3)(2) DATA2DW2 DUP(0,1,2),?,-5,256H13. 請用子
41、程序結(jié)構(gòu)編寫如下程序:從鍵盤輸入一個(gè)二位十進(jìn)制的月份數(shù)(0112),然后顯示出響應(yīng)的英文縮寫名。0000H0001H0002H0000H0001H0002H?FFFB0256HDATA20000H0002H0004H0006H0008H000AH000CH000DH000EH0010H0012H0014H42H59H55H45H0CH12H00H?03H00H?H03HDATA10000H0001H0002H0003H0004H0005H0006H0007H0008H0009H000AH000BH14. 給出下列等值語句:LPHAEQU100BETAEQU25GRAMM EQU 4試求出下列表
42、達(dá)式的值:(1) ALPHA*100+BETA; MOV AL, LPHA MOV BL, 100 MOV CX, BETA MUL BL ;AL*BL-AX ADD AX, CX(2) (ALPHA + 4)*BETA-2 MOV AL, LPHA ADD AL, 4 MOV BL, BETA MUL BL ;AL*BL-AX10H34H07H09H42H00H42H00H48H45H4CH4CH4FHCDHABH00H00HDATA10000H0001H0002H0003H0004H0005H0006H0007H0008H0009H000AH000BH000CH000DH000EH000F
43、H0010HDATA2DATA3DATA5 SUB AX, 2(3) (BETA/3)MOD 5; MOV AX, BETA MOV BL, 3 DIV BL MOV AL, AL MOD 5(4) GRAMMOR3 MOV AL, GRAMM OR AL, 315.圖示以下數(shù)據(jù)段在存儲器中的存放形式。 DATASEGMENTDATA1 DB10H,34H,07H,09HDATA2 DW2DUP(42H)DATA3 DB HELLODATA4EQU 12DATA5DD0ABCDHDATA ENDS 16. 閱讀下邊的程序段,試說明它實(shí)現(xiàn)的功能是什么? DATAS SEGMENTDATA1DBA
44、BCDEFGDATAS ENDSCODES SEGMENT ASSUMECS:CODES, DS:DATASSTART: MOV AX, DATAS MOV DS, AX MOV BX, OFFSETDATA1 ;BX取DATA1地址, BX=0000H MOV CX, 7NEXT: MOV AH, 2 ;DOS功能2 MOV AL, BX XCHG AL, DL ;將要顯示字符的ASCII送DL INC BX INT 21H LOOP NEXT ; 功能是顯示字符ABCDEFG MOV AH, 4CH INT 21HCODESENDS END START 17. 編寫一程序段,把BUFFER開始的100個(gè)字節(jié)的內(nèi)存區(qū)域初始化為55H、0AAH、55H、0AAH、55H、0AAH。 DATAS SEGMENT BUFFER DB 100 DUP(?) DATAS ENDS CODES
溫馨提示
- 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 防火安全培訓(xùn)心得
- 防塵口罩安全培訓(xùn)記錄課件
- 隊(duì)友介紹教學(xué)課件
- 鄧州食品安全培訓(xùn)會
- 道路運(yùn)輸安全網(wǎng)絡(luò)培訓(xùn)
- 江蘇省2025九年級物理上冊第十一章簡單機(jī)械和功第五節(jié)機(jī)械效率第3課時(shí)機(jī)械效率的計(jì)算課堂鞏固課件新版蘇科版
- 本地家政服務(wù)線上推廣獲客方案
- 《內(nèi)科護(hù)理》課件-第2章 第09節(jié) 原發(fā)性支氣管肺癌病人的護(hù)理
- 環(huán)境設(shè)計(jì)與環(huán)保創(chuàng)新實(shí)踐
- 舞臺活動營銷方案策劃(3篇)
- T-QGCML 4443-2024 漆樹籽油團(tuán)體標(biāo)準(zhǔn)
- 數(shù)字與圖像處理-終結(jié)性考核-國開(SC)-參考資料
- 教科版六年級科學(xué)上冊知識清單(新版)
- 2013清單工程量計(jì)算規(guī)則
- 甲烷活化機(jī)制研究
- 我愛五指山我愛萬泉河混聲合唱譜
- 鈥激光在皮膚科手術(shù)中的臨床應(yīng)用
- 2024年4月自考00612日本文學(xué)選讀試題
- 《海上風(fēng)電場工程巖土試驗(yàn)規(guī)程》(NB/T 10107-2018)
- 地產(chǎn)公司設(shè)計(jì)部工作總結(jié)
- 《期權(quán)基礎(chǔ)知識》課件
評論
0/150
提交評論