![匯編語言期末習(xí)題_第1頁](http://file4.renrendoc.com/view/3c42926548bf93bda8b52613aa704aa8/3c42926548bf93bda8b52613aa704aa81.gif)
![匯編語言期末習(xí)題_第2頁](http://file4.renrendoc.com/view/3c42926548bf93bda8b52613aa704aa8/3c42926548bf93bda8b52613aa704aa82.gif)
![匯編語言期末習(xí)題_第3頁](http://file4.renrendoc.com/view/3c42926548bf93bda8b52613aa704aa8/3c42926548bf93bda8b52613aa704aa83.gif)
![匯編語言期末習(xí)題_第4頁](http://file4.renrendoc.com/view/3c42926548bf93bda8b52613aa704aa8/3c42926548bf93bda8b52613aa704aa84.gif)
![匯編語言期末習(xí)題_第5頁](http://file4.renrendoc.com/view/3c42926548bf93bda8b52613aa704aa8/3c42926548bf93bda8b52613aa704aa85.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
..匯編語言期末習(xí)題第二章8086計(jì)算機(jī)組織〔主要是尋址方式以及地址存儲(chǔ)方式〕2.2有兩個(gè)16位字1EE5H和2A3CH分別存放在80x86微機(jī)的存儲(chǔ)器的000B0H和000B3H單元中,請(qǐng)用圖表示出它們?cè)诖鎯?chǔ)器里的存放情況。答:存儲(chǔ)器里的存放情況如右以下圖所示:000B0HE5H000B1H1EH000B2H000B3H3CH000B4H2AH2.3在IBMPC機(jī)的存儲(chǔ)器中存放信息如右以下圖所示。試讀出30022H和30024H字節(jié)單元的容,以及30021H和30022H字單元的容。如圖:3002012H3002134H30022ABH30023CDH30024EFH答案:30020H:12H30021H:34H
30022H:ABH
30023H:CDH
30024H:EFH2.4在實(shí)模式下,段地址和偏移地址為3017:000A的存儲(chǔ)單元的物理地址是什么?如果段地址和偏移地址是3015:002A和3010:007A呢?答:3017:000A、3015:002A和3010:007A的存儲(chǔ)單元的物理地址都是3017AH。2.5如果在一個(gè)程序開場(chǎng)執(zhí)行以前(CS)=0A7F0H,(如16進(jìn)制數(shù)的最高位為字母,那么應(yīng)在其前加一個(gè)0)(IP)=2B40H,試問該程序的第一個(gè)字的物理地址是多少?答:該程序的第一個(gè)字的物理地址是0AAA40H。第三章8086的指令系統(tǒng)和尋址方式3.1給定(BX)=637DH,(SI)=2A9BH,位移量D=7237H,試確定在以下各種尋址方式下的有效地址是什么?
(1)立即尋址(2)直接尋址(3)使用BX的存放器尋址
(4)使用BX的簡(jiǎn)接尋址(5)使用BX的存放器相對(duì)尋址(6)基址變址尋址(7)相對(duì)基址變址尋址
答:(1)操作數(shù)在指令中,即立即數(shù);
(2)EA=D=7237H;
(3)無EA,操作數(shù)為(BX)=637DH;
(4)EA=(BX)=637DH;
(5)EA=(BX)+D=0D5B4H;
(6)EA=(BX)+(SI)=8E18H;
(7)EA=(BX)+(SI)+D=1004FH;超過了段的邊界,最高進(jìn)位位喪失,因此EA=004FH。3.2試根據(jù)以下要求寫出相應(yīng)的匯編語言指令
(1)把BX存放器和DX存放器的容相加,結(jié)果存入DX存放器中。
(2)用存放器BX和SI的基址變址尋址方式把存儲(chǔ)器中的一個(gè)字節(jié)與AL存放器的容相加,并把結(jié)果送到AL存放器中。
(3)用存放器BX和位移量0B2H的存放器相對(duì)尋址方式把存儲(chǔ)器中的一個(gè)字和(CX)相加,并把結(jié)果送回存儲(chǔ)器中。
(4)用位移量為0524H的直接尋址方式把存儲(chǔ)器中的一個(gè)字與數(shù)2A59H相加,并把結(jié)果送回存儲(chǔ)單元中。
(5)把數(shù)0B5H與(AL)相加,并把結(jié)果送回AL中。
答:(1)ADDDX,BX
(2)ADDAL,[BX][SI]
(3)ADD[BX+0B2H],CX
(4)ADDWORDPTR[0524H],2A59H
(5)ADDAL,0B5H3.3寫出把首地址為BLOCK的字?jǐn)?shù)組的第6個(gè)字送到DX存放器的指令。要求使用以下幾種尋址方式:
(1)存放器間接尋址
(2)存放器相對(duì)尋址
(3)基址變址尋址
答:(1)MOVBX,OFFSETBLOCK
ADDBX,(6–1)*2
MOVDX,[BX]
(2)MOVBX,OFFSETBLOCK改為:MOVBX,(6-1)*2
MOVDX,[BX+(6–1)*2]也可MOVDX,BLOCK[BX]
(3)MOVBX,OFFSETBLOCK
MOVSI,(6–1)*2
MOVDX,[BX][SI]
3.4現(xiàn)有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101H)=34H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H,試說明以下各條指令執(zhí)行完后AX存放器的容。MOVAX,1200H(1)(AX)=1200H
(2)MOVAX,BX(2)(AX)=0100H
(3)MOVAX,[1200H](3)(AX)=4C2AH
(4)MOVAX,[BX](4)(AX)=3412H
(5)MOVAX,1100[BX](5)(AX)=4C2AH
(6)MOVAX,[BX][SI](6)(AX)=7856H
(7)MOVAX,1100[BX][SI](7)(AX)=65B7H
3.8假定(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,數(shù)據(jù)段中變量名VAL的偏移地址為0050H,試指出以下源操作數(shù)字段的尋址方式是什么?其物理地址值是多少?
(1)MOVAX,0ABH(2)MOVAX,BX
(3)MOVAX,[100H](4)MOVAX,VAL
(5)MOVAX,[BX](6)MOVAX,ES:[BX]
(7)MOVAX,[BP](8)MOVAX,[SI]
(9)MOVAX,[BX+10](10)MOVAX,VAL[BX]
(11)MOVAX,[BX][SI](12)MOVAX,VAL[BX][SI]
答:(1)立即方式;操作數(shù)在本條指令中
(2)存放器尋址方式;操作數(shù)為(BX)=0100H
(3)直接尋址方式;PA=20100H
(4)直接尋址方式;PA=20050H
(5)BX存放器間接尋址方式;PA=20100H
(6)附加段BX存放器間接尋址方式;PA=21100H
(7)BP存放器間接尋址方式;PA=15010H
(8)SI存放器間接尋址方式;PA=200A0H
(9)BX存放器相對(duì)尋址方式;PA=20110H
(10)BX存放器相對(duì)尋址方式;PA=20150H
(11)BX和SI存放器基址變址尋址方式;PA=201A0H
(12)BX和SI存放器相對(duì)基址變址尋址方式;PA=201F0H
3.9在ARRAY數(shù)組中依次存儲(chǔ)了七個(gè)字?jǐn)?shù)據(jù),緊接著是名為ZERO的字單元,表示如下:
ARRAYDW23,36,2,100,32000,54,0
ZERODW"
(1)如果BX包含數(shù)組ARRAY的初始地址,請(qǐng)編寫指令將數(shù)據(jù)0傳送給ZERO單元。
(2)如果BX包含數(shù)據(jù)0在數(shù)組中的位移量,請(qǐng)編寫指令將數(shù)據(jù)0傳送給ZERO單元。
答:(1)MOVAX,[BX+(7-1)*2]
MOV[BX+(7)*2],AX(2)MOVAX,ARRAY[BX]
MOVARRAY[BX+2],AX
3.10如TABLE為數(shù)據(jù)段中0032單元的符號(hào)名,其中存放的容為1234H,試問以下兩條指令有什么區(qū)別?指令執(zhí)行完后AX存放器的容是什么?
MOVAX,TABLE
LEAAX,TABLE
答:MOVAX,TABLE是將TABLE單元的容送到AX,(AX)=1234H
LEAAX,TABLE是將TABLE單元的有效地址送到AX,(AX)=0032H
3.11執(zhí)行以下指令后AX存放器中的容是什么?
TABLEDW10,20,30,40,50;000AH,0014H,001EH,0028H,0032H
ENTRYDW3
┇
MOVBX,OFFSETTABLE
ADDBX,ENTRY
MOVAX,[BX]
答:(AX)=1E00H(TABLE的存儲(chǔ)方式如右圖所示)3.12以下ASCII碼串(包括空格符)依次存儲(chǔ)在起始地址為CSTRING的字節(jié)單元中:
CSTRINGDB‘BASEDADDRESSING’
請(qǐng)編寫指令將字符串中的第1個(gè)和第7個(gè)字符傳送給DX存放器。
答:MOVDH,CSTRING
MOVDL,CSTRING+7-1
3.13堆棧段存放器SS的容是0FFA0H,堆棧指針存放器SP的容是00B0H,先執(zhí)行兩條把8057H和0F79H分別進(jìn)棧的PUSH指令,再執(zhí)行一條POP指令。試畫出堆棧區(qū)和SP的容變化過程示意圖(標(biāo)出存儲(chǔ)單元的物理地址)。
答:堆棧區(qū)和SP的容變化過程示意圖如下左圖所示。3.15求出以下各十六進(jìn)制數(shù)與十六進(jìn)制數(shù)62A0H之和,并根據(jù)結(jié)果設(shè)置標(biāo)志位SF、ZF、CF和OF的值。
(1)1234H(2)4321H(3)CFA0H(4)9D60H
答:(1)和為74D4H;SF=0,ZF=0,CF=0,OF=0
(2)和為A5C1H;SF=1,ZF=0,CF=0,OF=1
(3)和為3240H;SF=0,ZF=0,CF=1,OF=0
(4)和為0000H;SF=0,ZF=1,CF=1,OF=03.16求出以下各十六進(jìn)制數(shù)與十六進(jìn)制數(shù)4AE0H的差值,并根據(jù)結(jié)果設(shè)置標(biāo)志位SF、ZF、CF和OF的值。
(1)1234H(2)5D90H(3)9090H(4)EA04H
答:(1)差為C754H;SF=1,ZF=0,CF=1,OF=0
(2)差為12B0H;SF=0,ZF=0,CF=0,OF=0
(3)差為45B0H;SF=0,ZF=0,CF=0,OF=1
(4)差為9F24H;SF=1,ZF=0,CF=0,OF=0
(1)MOVAX,Z
SUBAX,X
ADDAX,W(1)MOVAX,Z
SUBAX,X
ADDAX,W
MOVZ,AX(4)MOVAX,W
SUBAX,X
CWD
MOVBX,5
IDIVBX
IMULY
SHLAX,1;((DX),(AX))*2
RCLDX,1(3)ADDY,6
MOVAX,W
IMULX
IDIVY
MOVZ,AX
MOVR,DX(2)MOVBX,X
ADDBX,6
MOVCX,R
ADDCR,9
MOVAX,W
SUBAX,BX
SUBAX,CX
MOVZ,AX3.18程序段如下:
MOVAX,1234H;(AX)=1234H,標(biāo)志位不變
MOVCL,4;(AX)和標(biāo)志位都不變
ROLAX,CL;(AX)=2341H,CF=1,SF和ZF不變
DECAX;(AX)=2340H,CF=1不變,SF=0,ZF=0
MOVCX,4;(AX)和標(biāo)志位都不變
MULCX;(AX)=8D00H,CF=OF=0,其它標(biāo)志無定義
INT20H
試問:
(1)每條指令執(zhí)行完后,AX存放器的容是什么?
(2)每條指令執(zhí)行完后,進(jìn)位、符號(hào)和零標(biāo)志的值是什么?
(3)程序完畢時(shí),AX和DX的容是什么?
答:(1)見注釋;
(2)見注釋;
(3)(AX)=8D00H,(DX)=0
3.19以下程序段中的每條指令執(zhí)行完后,AX存放器及CF、SF、ZF和OF的容是什么?
MOVAX,0;(AX)=0,標(biāo)志位不變
DECAX;(AX)=0FFFFH,CF不變,SF=1,ZF=0,OF=0
ADDAX,7FFFH;(AX)=7FFEH,CF=1,SF=0,ZF=0,OF=0
ADDAX,2;(AX)=8000H,CF=0,SF=1,ZF=0,OF=1
NOTAX;(AX)=7FFFH,標(biāo)志位不變
SUBAX,0FFFFH;(AX)=8000H,CF=1,SF=1,ZF=0,OF=1
ADDAX,8000H;(AX)=0,CF=1,SF=0,ZF=1,OF=1
SUBAX,1;(AX)=0FFFFH,CF=1,SF=1,ZF=0,OF=0
ANDAX,58D1H;(AX)=58D1H,CF=0,SF=0,ZF=0,OF=0
SALAX,1;(AX)=0B1A2H,CF=0,SF=1,ZF=0,OF=1
SARAX,1;(AX)=0D8D1H,CF=0,SF=1,ZF=0,OF=0
NEGAX;(AX)=272FH,CF=1,SF=0,ZF=0,OF=0
RORAX,1;(AX)=9397H,CF=1,SF和ZF不變,OF=1答:見注釋。
3.20變量DATAX和變量DATAY的定義如下:
DATAXDW0148H
DW2316H
DATAYDW0237H
DW4052H
請(qǐng)按以下要求寫出指令序列:
(1)DATAX和DATAY兩個(gè)字?jǐn)?shù)據(jù)相加,和存放在DATAY中。
(2)DATAX和DATAY兩個(gè)雙字?jǐn)?shù)據(jù)相加,和存放在從DATAY開場(chǎng)的雙字單元中。
(3)解釋以下指令的作用:
STC
MOVBX,DATAX
ADCBX,DATAY
(4)DATAX和DATAY兩個(gè)字?jǐn)?shù)據(jù)相乘(用MUL)。
(5)DATAX和DATAY兩個(gè)雙字?jǐn)?shù)據(jù)相乘(用MUL)。
(6)DATAX除以23(用DIV)。(5)AADW0
BBDW0
CCDW0
DDDW0
┇
MOVAX,DATAX
MULDATAY
MOVAA,AX
MOVBB,DX
MOVAX,DATAX
MULDATAY+2
ADDBB,AX
ADCCC,DX
MOVAX,DATAX+2
MULDATAY
ADDBB,AX
ADCCC,DX
ADCDD,0
MOVAX,DATAX+2
MULDATAY+2
ADDCC,AX
ADCDD,DX
2)MOVAX,DATAX
ADDDATAY,AX
MOVAX,DATAX+2
ADCDATAY+2,AX
MOVDATAY+4,0;用于存放進(jìn)位位
ADCDATAY+4,0
(4)RESULT1DW0
DW0
RESULT2DW0
DW0
┇
MOVAX,DATAX
MULDATAY
MOVRESULT1,AX
MOVRESULT1+2,DX
MOVAX,DATAX+2
MULDATAY+2
MOVRESULT2,AX
MOVRESULT2+2,DX
(7)MOVDX,DATAX+2
MOVAX,DATAX
DIVDATAY(6)MOVAX,DATAX
MOVBL,23
DIVBL(1)MOVAX,DATAX
ADDDATAY,AX
MOVAX,DATAX+2
ADDDATAY+2,AX(7)DATAX雙字除以字DATAY(用DIV)。
答:
(3)DATAX和DATAY兩個(gè)字?jǐn)?shù)據(jù)之和加1,結(jié)果存入BX存放器。
(5)AADW0
BBDW0
CCDW0
DDDW0
┇
MOVAX,DATAX
MULDATAY
MOVAA,AX
MOVBB,DX
MOVAX,DATAX
MULDATAY+2
ADDBB,AX
ADCCC,DX
MOVAX,DATAX+2
MULDATAY
ADDBB,AX
ADCCC,DX
ADCDD,0
MOVAX,DATAX+2
MULDATAY+2
ADDCC,AX
ADCDD,DX
2)MOVAX,DATAX
ADDDATAY,AX
MOVAX,DATAX+2
ADCDATAY+2,AX
MOVDATAY+4,0;用于存放進(jìn)位位
ADCDATAY+4,0
(4)RESULT1DW0
DW0
RESULT2DW0
DW0
┇
MOVAX,DATAX
MULDATAY
MOVRESULT1,AX
MOVRESULT1+2,DX
MOVAX,DATAX+2
MULDATAY+2
MOVRESULT2,AX
MOVRESULT2+2,DX
(7)MOVDX,DATAX+2
MOVAX,DATAX
DIVDATAY(6)MOVAX,DATAX
MOVBL,23
DIVBL(1)MOVAX,DATAX
ADDDATAY,AX
MOVAX,DATAX+2
ADDDATAY+2,AX..3.22試編寫一程序求出雙字長數(shù)的絕對(duì)值。雙字長數(shù)在A和A+2單元中,結(jié)果存放在B和B+2單元中。
答:程序段如下:
MOVAX,A
MOVDX,A+2
CMPDX,0
JNSZHENSHU;不是負(fù)數(shù)那么轉(zhuǎn)走NEGDX
NEGAX
SBBDX,0
ZHENSHU:MOVB,AX
MOVB+2,DX
INT20H
3.23假設(shè)(BX)=0E3H,變量VALUE中存放的容為79H,確定以下各條指令單獨(dú)執(zhí)行后的結(jié)果。
(1)XORBX,VALUE;(BX)=9AH,CF、OF都為0,AF無定義,SF=1,ZF=0,PF=1
(2)ANDBX,VALUE;(BX)=61H,CF、OF都為0,AF無定義,SF=0,ZF=0,PF=0
(3)ORBX,VALUE;(BX)=0FBH,CF、OF都為0,AF無定義,SF=1,ZF=0,PF=0
(4)XORBX,0FFH;(BX)=1CH,CF、OF都為0,AF無定義,SF=0,ZF=0,PF=0
(5)ANDBX,0;(BX)=00H,CF、OF都為0,AF無定義,SF=0,ZF=1,PF=1
(6)TESTBX,01H;(BX)=0E3H,CF、OF都為0,AF無定義,SF=1,ZF=0,PF=0
答:見注釋。
3.24試寫出執(zhí)行以下指令序列后BX存放器的容。執(zhí)行前(BX)=6D16H。
MOVCL,7
SHRBX,CL
答:(BX)=00DAH。
3.26試分析下面的程序段完成什么功能?
MOVCL,04
SHLDX,CL
MOVBL,AH
SHLAX,CL
SHRBL,CL
ORDL,BL
答:本程序段將((DX),(AX))的雙字同時(shí)左移4位,即將此雙字乘以10H(16)。
3.27假定(DX)=0B9H,(CL)=3,(CF)=1,確定以下各條指令單獨(dú)執(zhí)行后DX中的值。
(1)SHRDX,1;(DX)=05CH
(2)SARDX,CL;(DX)=17H
(3)SHLDX,CL;(DX)=5C8H
(4)SHLDL,1;(DX)=72H
(5)RORDX,CL;(DX)=2017H
(6)ROLDL,CL;(DX)=0CDH
(7)SALDH,1;(DX)=0B9H
(8)RCLDX,CL;(DX)=2CCH
(4)RCRDL,1;(DX)=0DCH
答:見注釋。
3.28以下程序段執(zhí)行完后,BX存放器的容是什么?
MOVCL,3
MOVBX,0B7H
ROLBX,1
RORBX,CL
答:(BX)=0C02DH。(5)MOVAL,‘’;空格的ASCII碼送AL存放器
CLD
MOVDI,SEGCONAME
MOVES,DI
LEADI,CONAME
REPNESCASB
JNENEXT
DECDI
MOVBX,DI
NEXT:┇
(2)MOVCX,20
STD
MOVSI,SEGCONAME
MOVDS,SI
MOVES,SI
LEASI,CONAME
ADDSI,20-1
LEADI,PRLINE
ADDDI,20-1
REPMOVSB
1)MOVCX,20
CLD
MOVSI,SEGCONAME
MOVDS,SI
MOVES,SI
LEASI,CONAME
LEADI,PRLINE
REPMOVSB
3.29假設(shè)數(shù)據(jù)段定義如下:
CONAMEDB‘SPACEEXPLORERSINC.’PRLINEDB20DUP(‘’)
用串指令編寫程序段分別完成以下功能:
(1)從左到右把CONAME中的字符串傳送到PRLINE。
(2)從右到左把CONAME中的字符串傳送到PRLINE。
(3)把CONAME中的第3和第4個(gè)字節(jié)裝入AX。
(4)把AX存放器的容存入從PRLINE+5開場(chǎng)的字節(jié)中。
(5)檢查CONAME字符串中有無空格字符,如有那么把第一個(gè)空格字符的地址傳送給BX存放器。
答:
(5)MOVAL,‘’;空格的ASCII碼送AL存放器
CLD
MOVDI,SEGCONAME
MOVES,DI
LEADI,CONAME
REPNESCASB
JNENEXT
DECDI
MOVBX,DI
NEXT:┇
(2)MOVCX,20
STD
MOVSI,SEGCONAME
MOVDS,SI
MOVES,SI
LEASI,CONAME
ADDSI,20-1
LEADI,PRLINE
ADDDI,20-1
REPMOVSB
1)MOVCX,20
CLD
MOVSI,SEGCONAME
MOVDS,SI
MOVES,SI
LEASI,CONAME
LEADI,PRLINE
REPMOVSB
(3)MOVAX,WORDPTRCONAME+3-1
(4)MOVWORDPTRPRLINE+5,AX
3.33假定AX和BX中的容為帶符號(hào)數(shù),CX和DX中的容為無符號(hào)數(shù),請(qǐng)用比擬指令和條件轉(zhuǎn)移指令實(shí)現(xiàn)以下判斷:
(1)假設(shè)DX的容超過CX的容,那么轉(zhuǎn)去執(zhí)行EXCEED。
(2)假設(shè)BX的容大于AX的容,那么轉(zhuǎn)去執(zhí)行EXCEED。
(3)假設(shè)CX的容等于0,那么轉(zhuǎn)去執(zhí)行ZERO。
(4)BX與AX的容相比擬是否產(chǎn)生溢出?假設(shè)溢出那么轉(zhuǎn)OVERFLOW。
(5)假設(shè)BX的容小于等于AX的容,那么轉(zhuǎn)EQ_SMA。
(6)假設(shè)DX的容低于等于CX的容,那么轉(zhuǎn)EQ_SMA。
答:(1)CMPDX,CX
JAEXCEED
(2)CMPBX,AX
JGEXCEED
(3)JCXZZERO
(4)CMPBX,AX
JOOVERFLOW
(5)CMPBX,AX
JLEEQ_SMA
(6)CMPDX,CX
EEQ_SMA
3.35指令CMPAX,BX后面跟著一條格式為J…L1的條件轉(zhuǎn)移指令,其中…可以是B、NB、BE、NBE、L、NL、LE、NLE中的任意一個(gè)。如果AX和BX的容給定如下:
AXBX
(1)1F52H1F52H
(2)88C9H88C9H
(3)FF82H007EH
(4)58BAH020EH
(5)FFC5HFF8BH
(6)09A0H1E97H
(7)8AEAHFC29H
(8)D367H32A6H
問以上8條轉(zhuǎn)移指令中的哪幾條將引起轉(zhuǎn)移到L1?
答:(1)JNB、E、JNL、JLE
(2)JNB、E、JNL、JLE
(3)JNB、JNBE、JL、JLE
(4)JNB、JNBE、JNL、JNLE
(5)JNB、JNBE、JL、JLE
(6)、E、JL、JLE
(7)、E、JNL、JNLE
(8)JNB、JNBE、JL、JLE
3.39考慮以下的調(diào)用序列:
(1)MAIN調(diào)用NEAR的SUBA過程(返回的偏移地址為0400);
(2)SUBA調(diào)用NEAR的SUBB過程(返回的偏移地址為0A00);
(3)SUBB調(diào)用FAR的SUBC過程(返回的段地址為B200,返回的偏移地址為0100);
(4)從SUBC返回SUBB;
(5)SUBB調(diào)用NEAR的SUBD過程(返回的偏移地址為0C00);
(6)從SUBD返回SUBB;
(7)從SUBB返回SUBA;
(8)從SUBA返回MAIN;
(9)從MAIN調(diào)用SUBC(返回的段地址為1000,返回的偏移地址為0600);
請(qǐng)畫出每次調(diào)用及返回時(shí)的堆棧狀態(tài)。
答:每次調(diào)用及返回時(shí)的堆棧狀態(tài)圖如下所示:3.40假設(shè)(EAX)=00001000H,(EBX)=00002000H,(DS)=0010H,試問以下指令訪問存的物理地址是什么?
(1)MOVECX,[EAX+EBX]
(2)MOV[EAX+2*EBX],CL
(3)MOVDH,[EBX+4*EAX+1000H]
答:(1)PA=(DS)*10H+EA=00100H+00001000H+00002000H=00003100H
(2)PA=(DS)*10H+EA=00100H+00001000H+2*00002000H=00005100H
(3)PA=(DS)*10H+EA=00100H+00002000H+4*00001000H+1000H=00007100H
3.41假設(shè)(EAX)=9823F456H,(ECX)=1F23491H,(BX)=348CH,(SI)=2000H,(DI)=4044H。在DS段中從偏移地址4044H單元開場(chǎng)的4個(gè)字節(jié)單元中,依次存放的容為92H,6DH,0A2H和4CH,試問以下各條指令執(zhí)行完后的目的地址及其中的容是什么?
(1)MOV[SI],EAX
(2)MOV[BX],ECX
(3)MOVEBX,[DI]
答:(1)目的地址為DS:2000H,容依次為:56H,0F4H,23H和98H
(2)目的地址為DS:348CH,容依次為:91H,34H,0F2H和01H
(3)目的操作數(shù)為EBX存放器,(EBX)=4CA26D92H
3.43請(qǐng)給出以下各指令序列執(zhí)行完后目的存放器的容。
(1)MOVEAX,299FF94H
ADDEAX,34FFFFH;(EAX)=2CEFF93H
(2)MOVEBX,40000000
SUBEBX,1500000;(EBX)=3EB00000H
(3)MOVEAX,39393834H
ANDEAX,0F0F0F0FH;(EAX)=09090804H
(4)MOVEDX,9FE35DH
XOREDX,0F0F0F0H;(EDX)=6F13ADH
答:見注釋。
3.44請(qǐng)給出以下各指令序列執(zhí)行完后目的存放器的容。
(1)MOVBX,-12
MOVSXEBX,BX;(EBX)=0FFFFFFF4H
(2)MOVCL,-8
MOVSXEDX,CL;(EDX)=0FFFFFFF8H
(3)MOVAH,7
MOVZXECX,AH;(ECX)=00000007H
(4)MOVAX,99H
MOVZXEBX,AX;(EBX)=00000099H
答:見注釋。
3.45請(qǐng)給出以下指令序列執(zhí)行完后EAX和EBX的容。
MOVECX,307F455H
BSFEAX,ECX;(EAX)=0D
BSREBX,ECX;(EBX)=25D
答:見注釋。
3.46請(qǐng)給出以下指令序列執(zhí)行完后AX和DX的容。
MOVBX,98H
BSFAX,BX;(AX)=3D
BSRDX,BX;(DX)=7D
答:見注釋。
3.49試編寫一程序段,要求把BL中的數(shù)除以CL中的數(shù),并把其商乘以2,最后的結(jié)果存入DX存放器中。
答:MOVAL,BL
MOVAH,0;假定為無符號(hào)數(shù),否那么用CBW指令即可
DIVCL
MOVAH,0
SHLAX,1
MOVDX,AX
3.50請(qǐng)說明JMPDI和JMP[DI]指令的區(qū)別。
答:JMPDI是轉(zhuǎn)移到以(DI)容為偏移地址的單元去執(zhí)行指令;JMP[DI]是轉(zhuǎn)移到以(DI)間接尋址的存單元容為偏移地址的單元去執(zhí)行指令。
3.51試編寫一程序段,要求在長度為100H字節(jié)的數(shù)組中,找出大于42H的無符號(hào)數(shù)的個(gè)數(shù)并存入字節(jié)單元UP中;找出小于42H的無符號(hào)數(shù)的個(gè)數(shù)并存入字節(jié)單元DOWN中。
答:JMPBEGIN
UPDB0
DOWNDB0
TABLEDB100HDUP(");數(shù)組
BEGIN:
MOVCX,100H
MOVBX,-1
MOVSI,0
MOVDI,0
L1:INCBX
CMPTABLE[BX],42H
JAL2
L3
JMPL4
L2:INCSI
JMPL4
L3:INCDI
L4:LOOPL1
MOVUP,SI
MOVDOWN,DI
..第四章匯編語言程序格式4.1指出以下指令的錯(cuò)誤:(1)MOVAH,BX;存放器類型不匹配(2)MOV[BX],[SI];不能都是存儲(chǔ)器操作數(shù)(3)MOVAX,[SI][DI];[SI]和[DI]不能一起使用(4)MOVMYDAT[BX][SI],ES:AX;AX存放器不能使用段超越(5)MOVBYTEPTR[BX],1000;1000超過了一個(gè)字節(jié)的圍(6)MOVBX,OFFSETMYDAT[SI];MYDAT[SI]已經(jīng)是偏移地址,不能再使用OFFSET(7)MOVCS,AX;CS不能用作目的存放器(8)MOVECX,AX;兩個(gè)操作數(shù)的數(shù)據(jù)類型不同答:見注釋。4.2下面哪些指令是非法的?(假設(shè)OP1,OP2是已經(jīng)用DB定義的變量)(1)CMP15,BX;錯(cuò),立即數(shù)不能作為目的操作數(shù)(2)CMPOP1,25(3)CMPOP1,OP2;錯(cuò),不能都是存儲(chǔ)器操作數(shù)(4)CMPAX,OP1;錯(cuò),類型不匹配,應(yīng)為CMPax,wordptrop1答:見注釋。4.3假設(shè)以下指令中的所有標(biāo)識(shí)符均為類型屬性為字的變量,請(qǐng)指出以下哪些指令是非法的?它們的錯(cuò)誤是什么?(1)MOVBP,AL;錯(cuò),存放器類型不匹配(2)MOVWORD_OP[BX+4*3][DI],SP(3)MOVWORD_OP1,WORD_OP2;錯(cuò),不能都是存儲(chǔ)器操作數(shù)(4)MOVAX,WORD_OP1[DX];錯(cuò),DX不能用于存儲(chǔ)器尋址(5)MOVSAVE_WORD,DS(6)MOVSP,SS:DATA_WORD[BX][SI](7)MOV[BX][SI],2;錯(cuò),[BX][SI]未指出數(shù)據(jù)類型(8)MOVAX,WORD_OP1+WORD_OP2(9)MOVAX,WORD_OP1-WORD_OP2+100(10)MOVWORD_OP1,WORD_OP1-WORD_OP2答:見注釋。4.4假設(shè)VAR1和VAR2為字變量,LAB為標(biāo)號(hào),試指出以下指令的錯(cuò)誤之處:(1)ADDVAR1,VAR2;不能都是存儲(chǔ)器操作數(shù)(2)SUBAL,VAR1;數(shù)據(jù)類型不匹配(3)JMPLAB[SI];LAB是標(biāo)號(hào)而不是變量名,后面不能加[SI](4)JNZVAR1;VAR1是變量而不是標(biāo)號(hào)(5)JMPNEARLAB;應(yīng)使用NEARPTR答:見注釋。4.5畫圖說明以下語句所分配的存儲(chǔ)空間及初始化的數(shù)據(jù)值。(1)BYTE_VARDB‘BYTE’,12,-12H,3DUP(0,",2DUP(1,2),")(2)WORD_VARDW5DUP(0,1,2),",-5,‘BY’,‘TE’,256H答:答案如以下圖所示。4.9有符號(hào)定義語句如下:BUFFDB1,2,3,‘123’EBUFFDB0LEQUEBUFF-BUFF問L的值是多少?答:L=6。4.10假設(shè)程序中的數(shù)據(jù)定義如下:LNAMEDB30DUP(")ADDRESSDB30DUP(")CITYDB15DUP(")CODE_LISTDB1,7,8,3,2(1)用一條MOV指令將LNAME的偏移地址放入AX。(2)用一條指令將CODE_LIST的頭兩個(gè)字節(jié)的容放入SI。(3)用一條偽操作使CODE_LENGTH的值等于CODE_LIST域的實(shí)際長度。答:(1)MOVAX,OFFSETLNAME(2)MOVSI,WORDPTRCODE_LIST(3)CODE_LENGTHEQU$-CODE_LIST;此語句必須放在CODE_LIST語句之后4.11試寫出一個(gè)完整的數(shù)據(jù)段DATA_SEG,它把整數(shù)5賦予一個(gè)字節(jié),并把整數(shù)-1,0,2,5和4放在10字?jǐn)?shù)組DATA_LIST的頭5個(gè)單元中。然后,寫出完整的代碼段,其功能為:把DATA_LIST中頭5個(gè)數(shù)中的最大值和最小值分別存入MAX和MIN單元中。答:DATA_SEGSEGMENTNUMDB5DATA_LISTDW-1,0,2,5,4,5DUP(")MAXDW"MINDW"DATA_SEGENDSCODE_SEGSEGMENTMAINPROCFARASSUMECS:CODE_SEG,DS:DATA_SEGSTART:PUSHDS;設(shè)置返回DOSSUBAX,AXPUSHAXMOVAX,DATA_SEG;給DS賦值MOVDS,AXMOVCX,4;程序段開場(chǎng)LEABX,DATA_LISTMOVAX,[BX]MOVMAX,AXMOVMIN,AXROUT1:ADDBX,2MOVAX,[BX]CMPAX,MAXJNGEROUT2MOVMAX,AXROUT2:CMPAX,MINJNLEROUT3MOVMIN,AXROUT3:LOOPROUT1;程序段完畢RETMAINENDPCODE_SEGENDSENDSTART4.12給出等值語句如下:ALPHAEQU100BETAEQU25GAMMAEQU2以下表達(dá)式的值是多少?(1)ALPHA*100+BETA;=2729H(2)ALPHAMODGAMMA+BETA;=19H(3)(ALPHA+2)*BETA–2;=9F4H(4)(BETA/3)MOD5;=3H(5)(ALPHA+3)*(BETAMODGAMMA);=67H(6)ALPHAGEGAMMA;=0FFFF
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 智能城市管理與服務(wù)作業(yè)指導(dǎo)書
- IT領(lǐng)域云服務(wù)平臺(tái)架構(gòu)規(guī)劃與建設(shè)方案
- 軟件測(cè)試技術(shù)及實(shí)施流程作業(yè)指導(dǎo)書
- 綠色農(nóng)業(yè)發(fā)展作業(yè)指導(dǎo)書
- 工程居間合同
- 能源化工行業(yè)項(xiàng)目管理作業(yè)指導(dǎo)書
- 2025年??谪涍\(yùn)從業(yè)資格證年考試題及答案
- 2025年酒泉普通貨運(yùn)從業(yè)資格證考試
- 2024-2025學(xué)年高中地理第四單元從人地關(guān)系看資源與環(huán)境單元活動(dòng)4遙感技術(shù)及其應(yīng)用練習(xí)含解析魯教版必修1
- 景觀設(shè)計(jì)師年終總結(jié)
- 小學(xué)班會(huì)-交通安全伴我行(共25張課件)
- 消防安全一懂三會(huì)四能
- 起重吊裝工程安全監(jiān)理細(xì)則模版(3篇)
- 《VAVE價(jià)值工程》課件
- 四川政采評(píng)審專家入庫考試基礎(chǔ)題復(fù)習(xí)試題及答案(一)
- 分享二手房中介公司的薪酬獎(jiǎng)勵(lì)制度
- 安徽省2022年中考道德與法治真題試卷(含答案)
- GB 4793-2024測(cè)量、控制和實(shí)驗(yàn)室用電氣設(shè)備安全技術(shù)規(guī)范
- 廣電雙向網(wǎng)改造技術(shù)建議書
- 項(xiàng)目人員管理方案
- 重大火災(zāi)隱患判定方法
評(píng)論
0/150
提交評(píng)論