版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、精選優(yōu)質文檔-傾情為你奉上IBMPC匯編語言程序設計習題參考答案第 一 章. 習 題1.1 用降冪法和除法將下列十進制數轉換為二進制數和十六進制數:(1) 369(2) 10000(3) 4095(4) 32767答:(1) 369=1 0111 0001B=171H(2) 10000=10 0111 0001 0000B=2710H(3) 4095=1111 1111 1111B=FFFH(4) 32767=111 1111 1111 1111B=7FFFH1.2 將下列二進制數轉換為十六進制數和十進制數:(1) 10 1101(2) 1000 0000(3) 1111 1111 1111
2、1111(4) 1111 1111答:(1) 10 1101B=2DH=45(2) 1000 0000B=80H=128(3) 1111 1111 1111 1111B=FFFFH=65535(4) 1111 1111B=FFH=2551.3 將下列十六進制數轉換為二進制數和十進制數:(1) FA(2) 5B(3) FFFE(4) 1234答:(1) FAH=1111 1010B=250(2) 5BH=101 1011B=91(3) FFFEH=1111 1111 1111 1110B=65534(4) 1234H=1 0010 0011 0100B=46601.4 完成下列十六進制數的運算,
3、并轉換為十進制數進行校核:(1) 3A+B7(2) 1234+AF(3) ABCD-FE(4) 7AB×6F答:(1) 3A+B7H=F1H=241(2) 1234+AFH=12E3H=4835(3) ABCD-FEH=AACFH=43727(4) 7AB×6FH=35325H=1.5 下列各數均為十進制數,請用8位二進制補碼計算下列各題,并用十六進制數表示其運算結果。(1) (-85)+76 (2) 85+(-76) (3) 85-76 (4) 85-(-76) (5) (-85)-76 (6) -85-(-76)答:(1) (-85)+76=1010 1011B+010
4、0 1100B=1111 0111B=0F7H;CF=0;OF=0(2) 85+(-76)=0101 0101B+1011 0100B=0000 1001B=09H;CF=1;OF=0(3) 85-76=0101 0101B-0100 1100B=0101 0101B+1011 0100B=0000 1001B=09H;CF=0;OF=0(4) 85-(-76)=0101 0101B-1011 0100B=0101 0101B+0100 1100B=B=0A1H;CF=0;OF=1(5) (-85)-76=1010 1011B-0100 1100B=1010 1011B+1011 0100B=
5、0101 1111B=5FH;CF=0;OF=1(6) -85-(-76)=1010 1011B-1011 0100B=1010 1011B+0100 1100B=B=0F7H;CF=0;OF=01.6 下列各數為十六進制表示的8位二進制數,請說明當它們分別被看作是用補碼表示的帶符號數或無符號數時,它們所表示的十進制數是什么?(1) D8(2) FF答:(1) D8H表示的帶符號數為 -40,D8H表示的無符號數為216;(2) FFH表示的帶符號數為 -1, FFH表示的無符號數為255。1.7 下列各數均為用十六進制表示的8位二進制數,請說明當它們分別被看作是用補碼表示的數或字符的ASCI
6、I碼時,它們所表示的十進制數及字符是什么?(1) 4F(2) 2B(3) 73(4) 59答:(1) 4FH表示的十進制數為 79,4FH表示的字符為O;(2) 2BH表示的十進制數為 43,2BH表示的字符為 +;(3) 73H表示的十進制數為115,73H表示的字符為s;(4) 59H表示的十進制數為89,59H表示的字符為Y。1.8 請寫出下列字符串的ASCII碼值。For example,This is a number 3692.答:46H 6FH 72H 20H 65H 78H 61H 6DH 70H 6CH 65H 2CH 0AH 0DH54H 68H 69H 73H 20H 6
7、9H 73H 20H 61H 20H 6EH 75H 6DH 62H 65H 72H 20H 33H 36H 39H 32H 2EH 0AH 0DH第 二 章. 習 題E5H000B0H1EH000B1H3CH000B3H2AH000B4H存儲器2.2題的信息存放情況000B2H2.1 在80x86微機的輸入/輸出指令中,I/O端口號通常是由DX寄存器提供的,但有時也可以在指令中直接指定00FFH的端口號。試問可直接由指令指定的I/O端口數。答:可直接由指令指定的I/O端口數為256個。2.2 有兩個16位字1EE5H和2A3CH分別存放在80x86微機的存儲器的000B0H和000B3H單元
8、中,請用圖表示出它們在存儲器里的存放情況。答:存儲器里的存放情況如右上圖所示。2.3 在IBM PC機的存儲器中存放信息如右下圖所示。試讀出30022H和30024H字節(jié)單元的內容,以及30021H和30022H字單元的內容。34H30021HABH30022HCDH30023HEFH30024H存儲器2.3題的信息存放情況12H30020H答:30022H字節(jié)單元的內容為ABH;30024H字節(jié)單元的內容為EFH。30021H字單元的內容為AB34H;30022H字單元的內容為CDABH。2.4 在實模式下,段地址和偏移地址為3017:000A的存儲單元的物理地址是什么?如果段地址和偏移地址
9、是3015:002A和3010:007A呢?答:3017:000A、3015:002A和3010:007A的存儲單元的物理地址都是3017AH。2.5 如果在一個程序開始執(zhí)行以前(CS)=0A7F0H,(如16進制數的最高位為字母,則應在其前加一個0) (IP)=2B40H,試問該程序的第一個字的物理地址是多少?答:該程序的第一個字的物理地址是0AAA40H。10F4010E4020F4020E4021F0031F0031FF041FF0附加段數據段堆棧段代碼段2.6 題的存儲器分段示意圖2.6 在實模式下,存儲器中每一段最多可有10000H個字節(jié)。如果用調試程序DEBUG的r命令在終端上顯示
10、出當前各寄存器的內容如下,請畫出此時存儲器分段的示意圖,以及條件標志OF、SF、ZF、CF的值。C>debug-rAX=0000 BX=0000 CX=0079 DX=0000 SP=FFEE BP=0000SI=0000 DI=0000 DS=10E4 ES=10F4 SS=21F0 CS=31FF IP=0100 NV UP DI PL NZ NA PO NC答:此時存儲器分段的示意圖如右圖所示。OF、SF、ZF、CF的值都為0。2.7 下列操作可使用那些寄存器?(1) 加法和減法數據寄存器等(2) 循環(huán)計數CX(3) 乘法和除法AX、DX,乘數和除數用其他寄存器或存儲器(4) 保存
11、段地址段寄存器(5) 表示運算結果為0ZF=1(6) 將要執(zhí)行的指令地址CS:IP(7) 將要從堆棧取出數據的地址SS:SP答:答案見題目的右邊。2.8 那些寄存器可以用來指示存儲器地址?答:BX、BP、SI、DI、堆棧操作時的SP、對應的段地址、386及其后繼機型的Exx。2.9 請將下列左邊的項和右邊的解釋聯(lián)系起來(把所選字母放在括號中):(1) CPU(M)A.保存當前棧頂地址的寄存器。(2) 存儲器(C)B.指示下一條要執(zhí)行的指令的地址。(3) 堆棧(D)C.存儲程序、數據等信息的記憶裝置,微機有RAM和ROM兩種。(4) IP(B)D.以后進先出方式工作的存儲空間。(5) SP(A)
12、E.把匯編語言程序翻譯成機器語言程序的系統(tǒng)程序。(6) 狀態(tài)標志(L)F.唯一代表存儲空間中每個字節(jié)單元的地址。(7) 控制標志(K)G.能被計算機直接識別的語言。(8) 段寄存器(J)H.用指令的助記符、符號地址、標號等符號書寫程序的語言。(9) 物理地址(F)I.把若干個模塊連接起來成為可執(zhí)行文件的系統(tǒng)程序。(10) 匯編語言(H)J.保存各邏輯段的起始地址的寄存器,8086/8088機有四個:CS、DS、SS、ES。(11) 機器語言(G)K.控制操作的標志,如DF位。(12) 匯編程序(E)L.記錄指令操作結果的標志,共6位:OF、SF、ZF、AF、PF、CF。(13) 連接程序(I)
13、M.分析、控制并執(zhí)行指令的部件,由算術邏輯部件ALU和寄存器等組成。(14) 指令(O)N.由匯編程序在匯編過程中執(zhí)行的指令。(15) 偽指令(N)O.告訴CPU要執(zhí)行的操作(一般還要指出操作數地址),在程序運行時執(zhí)行。答:答案見題目的括號中。第 三 章. 習 題3.1 給定(BX)=637DH,(SI)=2A9BH,位移量D=7237H,試確定在以下各種尋址方式下的有效地址是什么?(1) 立即尋址(2) 直接尋址(3) 使用BX的寄存器尋址(4) 使用BX的簡接尋址(5) 使用BX的寄存器相對尋址(6) 基址變址尋址(7) 相對基址變址尋址答:(1) 操作數在指令中,即立即數;(2) EA=
14、D=7237H;(3) 無EA,操作數為(BX)=637DH;(4) EA=(BX)=637DH;(5) EA=(BX)+D=0D5B4H;(6) EA=(BX)+(SI)=8E18H;(7) EA=(BX)+(SI)+D=1004FH;超過了段的邊界,最高進位位丟失,因此EA=004FH。3.2 試根據以下要求寫出相應的匯編語言指令(1) 把BX寄存器和DX寄存器的內容相加,結果存入DX寄存器中。(2) 用寄存器BX和SI的基址變址尋址方式把存儲器中的一個字節(jié)與AL寄存器的內容相加,并把結果送到AL寄存器中。(3) 用寄存器BX和位移量0B2H的寄存器相對尋址方式把存儲器中的一個字和(CX)
15、相加,并把結果送回存儲器中。(4) 用位移量為0524H的直接尋址方式把存儲器中的一個字與數2A59H相加,并把結果送回存儲單元中。(5) 把數0B5H與(AL)相加,并把結果送回AL中。答:(1) ADD DX, BX(2) ADD AL, BXSI(3) ADD BX+0B2H, CX(4) ADD WORD PTR 0524H, 2A59H(5) ADD AL, 0B5H3.3 寫出把首地址為BLOCK的字數組的第6個字送到DX寄存器的指令。要求使用以下幾種尋址方式:(1) 寄存器間接尋址(2) 寄存器相對尋址(3) 基址變址尋址答:(1) MOV BX, OFFSET BLOCKADD
16、 BX, (61)*2MOV DX, BX(2) MOV BX, OFFSET BLOCK改為:MOV BX, (6-1)*2MOV DX, BX+(61)*2也可MOV DX, BLOCKBX(3) MOV BX, OFFSET BLOCKMOV SI, (61)*2MOV DX, BXSIFFH00H80H3.6題的作圖表示10H1B00:2000H1B00:2001H1B00:2002H1B00:2003H8000:FF10H8000:FF11H?(AL)?(AH)3.4 現(xiàn)有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100H)=12H,(20101H)=3
17、4H,(20102H)=56H,(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H,試說明下列各條指令執(zhí)行完后AX寄存器的內容。(1) MOV AX, 1200H(2) MOV AX, BX(3) MOV AX, 1200H(4) MOV AX, BX(5) MOV AX, 1100BX(6) MOV AX, BXSI(7) MOV AX, 1100BXSI答:(1) (AX)=1200H(2) (AX)=0100H(3) (AX)=4C2AH(4) (AX)=3412H(5) (AX)=4C2AH(6) (AX)=
18、7856H(7) (AX)=65B7H3.5 給定(IP)=2BC0H,(CS)=0200H,位移量D=5119H,(BX)=1200H,(DS)=212AH,(224A0H)=0600H,(275B9H)=098AH,試為以下的轉移指令找出轉移的偏移地址。(1) 段內直接尋址(2) 使用BX及寄存器間接尋址方式的段內間接尋址(3) 使用BX及寄存器相對尋址方式的段內間接尋址答:(1) JMP NEAR PTR 5119H;(IP)=5119H+(IP)+03H)=7CDCH,物理地址PA=09CDCH(IP)+03H是JMP NEAR PTR 5119H指令的下一條指令的首地址。(2) JM
19、P WORD PTR BX;(IP)=(DS)*10H+(BX)=0600H,PA=02600H(3) JMP DBX;(IP)=(DS)*10H+(BX)+D)=098AH,PA=0298AH3.6 設當前數據段寄存器的內容為1B00H,在數據段的偏移地址2000H單元內,含有一個內容為0FF10H和8000H的指針,它們是一個16位變量的偏移地址和段地址,試寫出把該變量裝入AX的指令序列,并畫圖表示出來。MOVBX, 2000HLESBX, BXMOVAX, ES :BX答:MOV BX, 2000H;圖示如上所示。MOV AX, 2000H+2MOV ES, AXMOV AX,
20、 ES:BX3.7 在0624H單元內有一條二字節(jié)JMP SHORT OBJ指令,如其中位移量為(1) 27H,(2) 6BH,(3) 0C6H,試問轉向地址OBJ的值是多少?答:(1) OBJ=0624H+02H+27H=064DH(2) OBJ=0624H+02H+6BH=0691H(3) OBJ=0624H+02H+0C6H=05ECH;C6H對應的負數為-3AH(向上轉移,負位移量)3.8 假定(DS)=2000H,(ES)=2100H,(SS)=1500H,(SI)=00A0H,(BX)=0100H,(BP)=0010H,數據段中變量名VAL的偏移地址為0050H,試指出下列源操作數
21、字段的尋址方式是什么?其物理地址值是多少?(1) MOV AX, 0ABH(2) MOV AX, BX(3) MOV AX, 100H(4) MOV AX, VAL(5) MOV AX, BX(6) MOV AX, ES:BX(7) MOV AX, BP(8) MOV AX, SI(9) MOV AX, BX+10(10) MOV AX, VALBX(11) MOV AX, BXSI(12) MOV AX, VALBXSI答:(1) 立即方式;操作數在本條指令中(2) 寄存器尋址方式;操作數為 (BX)=0100H(3) 直接尋址方式;PA=20100H(4) 直接尋址方式;PA=20050H
22、(5) BX寄存器間接尋址方式;PA=20100H(6) 附加段BX寄存器間接尋址方式;PA=21100H(7) BP寄存器間接尋址方式;PA=15010H(8) SI寄存器間接尋址方式;PA=200A0H(9) BX寄存器相對尋址方式;PA=20110H(10) BX寄存器相對尋址方式;PA=20150H(11) BX和SI寄存器基址變址尋址方式;PA=201A0H(12) BX和SI寄存器相對基址變址尋址方式;PA=201F0H3.9 在ARRAY數組中依次存儲了七個字數據,緊接著是名為ZERO的字單元,表示如下:ARRAYDW 23, 36, 2, 100, 32000, 54, 0ZE
23、RODW ?(1) 如果BX包含數組ARRAY的初始地址,請編寫指令將數據0傳送給ZERO單元。(2) 如果BX包含數據0在數組中的位移量,請編寫指令將數據0傳送給ZERO單元。答:(1) MOV AX, BX+(7-1)*2MOV BX+(7)*2, AX(2) MOV AX, ARRAY BXMOV ARRAY BX+2, AX0AH00H14H00H1EH00H28H00H32H00HTABLETABLE+33.11題的TABLE存儲方式3.10 如TABLE為數據段中0032單元的符號名,其中存放的內容為1234H,試問以下兩條指令有什么區(qū)別?指令執(zhí)行完后AX寄存器的內容是什么?MOV
24、AX, TABLELEAAX, TABLE答:MOVAX, TABLE是將TABLE單元的內容送到AX,(AX)=1234HLEAAX,TABLE是將TABLE單元的有效地址送到AX,(AX)=0032H3.11 執(zhí)行下列指令后AX寄存器中的內容是什么?TABLEDW 10, 20, 30, 40, 50;000AH, 0014H, 001EH, 0028H, 0032HENTRYDW 3MOVBX, OFFSET TABLEADDBX, ENTRYMOVAX, BX答:(AX)=1E00H (TABLE的存儲方式如右圖所示)3.12 下列ASCII碼串(包括空格符)依次存儲在起始地址為CST
25、RING的字節(jié)單元中:CSTRING DB BASED ADDRESSING請編寫指令將字符串中的第1個和第7個字符傳送給DX寄存器。答:MOV DH, CSTRINGMOV DL, CSTRING+7-13.13 已知堆棧段寄存器SS的內容是0FFA0H,堆棧指針寄存器SP的內容是00B0H,先執(zhí)行兩條把8057H和0F79H分別進棧的PUSH指令,再執(zhí)行一條POP指令。試畫出堆棧區(qū)和SP的內容變化過程示意圖(標出存儲單元的物理地址)。答:堆棧區(qū)和SP的內容變化過程示意圖如下左圖所示。8000H1B00:20003.14題的存儲區(qū)情況2B00HX1B00:20022B00:800079H0F
26、H57H80HFFAACHFFAB0H3.13題的堆棧區(qū)和SP的內容變化過程示意圖FFAAEH首次進棧(SP)(SP)-2再次進棧(SP)(SP)-2出棧時(SP)(SP)+23.14 設(DS)=1B00H,(ES)=2B00H,有關存儲單元的內容如上右圖所示。請寫出兩條指令把字變量X裝入AX寄存器。答:MOV BX, 2000HMOV AX, ES:BX3.15 求出以下各十六進制數與十六進制數62A0H之和,并根據結果設置標志位SF、ZF、CF和OF的值。(1) 1234H(2) 4321H(3) CFA0H(4) 9D60H答:(1) 和為74D4H;SF=0,ZF=0,CF=0,OF
27、=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 求出以下各十六進制數與十六進制數4AE0H的差值,并根據結果設置標志位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=
28、0,CF=0,OF=03.17 寫出執(zhí)行以下計算的指令序列,其中X、Y、Z、R、W均為存放16位帶符號數單元的地址。(1) ZW+(Z-X)(2) ZW-(X+6)-(R+9)(3) Z(W*X)/(Y+6),R余數(4) Z(W-X)/5*Y)*2答:(1) MOV AX, Z;以下程序都未考慮帶符號數的溢出SUB AX, XADD AX, WMOV Z, AX(2) MOV BX, XADD BX, 6MOV CX, RADD CR, 9MOV AX, WSUB AX, BXSUB AX, CXMOV Z, AX(3) ADD Y, 6MOV AX, WIMUL XIDIV YMOV Z,
29、 AXMOV R, DX(4) MOV AX, WSUB AX, XCWDMOV BX, 5IDIV BXIMUL YSHL AX, 1;(DX),(AX)*2RCL DX, 13.18 已知程序段如下:MOVAX, 1234H;(AX)=1234H,標志位不變MOVCL, 4;(AX)和標志位都不變ROLAX, CL;(AX)=2341H,CF=1,SF和ZF不變DECAX;(AX)=2340H,CF=1不變,SF=0,ZF=0MOVCX, 4;(AX)和標志位都不變MULCX;(AX)=8D00H,CF=OF=0,其它標志無定義INT20H試問:(1) 每條指令執(zhí)行完后,AX寄存器的內容是
30、什么?(2) 每條指令執(zhí)行完后,進位、符號和零標志的值是什么?(3) 程序結束時,AX和DX的內容是什么?答:(1) 見注釋;(2) 見注釋;(3) (AX)=8D00H,(DX)=03.19 下列程序段中的每條指令執(zhí)行完后,AX寄存器及CF、SF、ZF和OF的內容是什么?MOVAX, 0;(AX)=0,標志位不變DECAX;(AX)=0FFFFH,CF不變,SF=1,ZF=0,OF=0ADDAX, 7FFFH;(AX)=7FFEH,CF=1,SF=0,ZF=0,OF=0ADDAX, 2;(AX)=8000H,CF=0,SF=1,ZF=0,OF=1NOTAX;(AX)=7FFFH,標志位不變S
31、UBAX, 0FFFFH;(AX)=8000H,CF=1,SF=1,ZF=0,OF=1ADDAX, 8000H;(AX)=0,CF=1,SF=0,ZF=1,OF=1SUBAX, 1;(AX)=0FFFFH,CF=1,SF=1,ZF=0,OF=0ANDAX, 58D1H;(AX)=58D1H,CF=0,SF=0,ZF=0,OF=0SALAX, 1;(AX)=0B1A2H,CF=0,SF=1,ZF=0,OF=1SARAX, 1;(AX)=0D8D1H,CF=0,SF=1,ZF=0,OF=0NEGAX;(AX)= 272FH,CF=1,SF=0,ZF=0,OF=0RORAX, 1;(AX)= 939
32、7H,CF=1,SF和ZF不變,OF=1答:見注釋。3.20 變量DATAX和變量DATAY的定義如下:DATAXDW 0148HDW 2316HDATAYDW 0237HDW 4052H請按下列要求寫出指令序列:(1) DATAX和DATAY兩個字數據相加,和存放在DATAY中。(2) DATAX和DATAY兩個雙字數據相加,和存放在從DATAY開始的雙字單元中。(3) 解釋下列指令的作用:STCMOV BX, DATAXADC BX, DATAY(4) DATAX和DATAY兩個字數據相乘(用MUL)。(5) DATAX和DATAY兩個雙字數據相乘(用MUL)。(6) DATAX除以23(
33、用DIV)。(7) DATAX雙字除以字DATAY (用DIV)。答:(1) MOV AX, DATAXADD DATAY, AXMOV AX, DATAX+2ADD DATAY+2, AX(2) MOV AX, DATAXADD DATAY, AXMOV AX, DATAX+2ADC DATAY+2, AXMOV DATAY+4, 0;用于存放進位位ADC DATAY+4, 0(3) DATAX和DATAY兩個字數據之和加1,結果存入BX寄存器。(4) RESULT1DW 0DW 0RESULT2DW 0DW 0 MOV AX, DATAXMUL DATAYMOV RESULT1 , AXM
34、OV RESULT1+2, DXMOV AX, DATAX+2MUL DATAY+2MOV RESULT2 , AXMOV RESULT2+2, DX(5) AA DW 0BB DW 0CC DW 0DD DW 0 MOV AX, DATAXMUL DATAYMOV AA , AXMOV BB, DXMOV AX, DATAXMUL DATAY+2ADD BB, AXADC CC, DXMOV AX, DATAX+2MUL DATAYADD BB, AXADC CC, DXADC DD, 0MOV AX, DATAX+2MUL DATAY+2ADD CC, AXADC DD, DX(6) MO
35、V AX, DATAXMOV BL, 23DIV BL(7) MOV DX, DATAX+2MOV AX, DATAXDIV DATAY3.21 寫出對存放在DX和AX中的雙字長數求補的指令序列。答:NEG DX也可為:NOTDXNEG AXNOTAXSBB DX, 0ADDAX, 1ADCDX, 03.22 試編寫一程序求出雙字長數的絕對值。雙字長數在A和A+2單元中,結果存放在B和B+2單元中。答:程序段如下:MOVAX, AMOVDX, A+2CMPDX, 0JNSZHENSHU;不是負數則轉走NEGDXNEGAXSBBDX, 0ZHENSHU:MOVB, AXMOVB+2, DXINT
36、20H3.23 假設(BX)=0E3H,變量VALUE中存放的內容為79H,確定下列各條指令單獨執(zhí)行后的結果。(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、O
37、F都為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, 7SHRBX, CL答:(BX)=00DAH。3.25 試用移位指令把十進制數+53和-49分別乘以2。它們應該用什么指令?得到的結果是什么?如果要除以2呢?答:MOVAL, 53SALAL, 1;(AL)=(+53*2)=6AHMOVAL, -49SALAL, 1;(AL)=(-49*2)=9EHMOVAL, 53SARAL, 1
38、;(AL)=(53/2)= 1AHMOVAL, -49SARAL, 1;(AL)=(-49/2)=0E7H3.26 試分析下面的程序段完成什么功能?MOVCL, 04SHLDX, CLMOVBL, AHSHLAX, CLSHRBL, CLORDL, BL答:本程序段將 (DX),(AX) 的雙字同時左移4位,即將此雙字乘以10H (16)。3.27 假定(DX)=0B9H,(CL)=3,(CF)=1,確定下列各條指令單獨執(zhí)行后DX中的值。(1) SHRDX, 1;(DX)=05CH(2) SARDX, CL;(DX)=17H(3) SHLDX, CL;(DX)=5C8H(4) SHLDL, 1
39、;(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, 3MOVBX, 0B7HROLBX,1RORBX, CL答:(BX)=0C02DH。3.29 假設數據段定義如下:CONAMEDBSPACE EXPLORERS INC.PRLINEDB20 DUP ()用串指令編寫程序段分別完成以下功能:(1) 從左到右把CONAME中的
40、字符串傳送到PRLINE。(2) 從右到左把CONAME中的字符串傳送到PRLINE。(3) 把CONAME中的第3和第4個字節(jié)裝入AX。(4) 把AX寄存器的內容存入從PRLINE+5開始的字節(jié)中。(5) 檢查CONAME字符串中有無空格字符,如有則把第一個空格字符的地址傳送給BX寄存器。答:(1) MOVCX, 20CLDMOVSI, SEG CONAMEMOVDS, SIMOVES, SILEASI, CONAMELEADI, PRLINEREPMOVSB(2) MOVCX, 20STDMOVSI, SEG CONAMEMOVDS, SIMOVES, SILEASI, CONAMEADD
41、SI, 20-1LEADI, PRLINEADDDI, 20-1REPMOVSB(3) MOVAX, WORD PTR CONAME+3-1(4) MOVWORD PTR PRLINE +5, AX(5) MOVAL, ;空格的ASCII碼送AL寄存器CLDMOVDI, SEG CONAMEMOVES, DILEADI, CONAMEREPNESCASBJNENEXTDECDIMOVBX, DINEXT:3.30 編寫程序段,把字符串STRING中的&字符用空格符代替。STRING DB The date is FEB&03答:程序段如下:MOVCX, 18MOVAL, &am
42、p;CLDMOVDI, SEG STRINGMOVES, DILEADI, STRINGREPNESCASBJNENEXTDECDIMOVES:BYTE PTR DI, ;送空格符NEXT: 3.31 假設數據段中數據定義如下:STUDENT_NAMEDB30 DUP (?)STUDENT_ADDRDB9 DUP (?)PRINT_LINEDB132 DUP (?)分別編寫下列程序段:(1) 用空格符清除PRINT_LINE域。(2) 在STUDENT_ADDR中查找第一個-。(3) 在STUDENT_ADDR中查找最后一個-。(4) 如果STUDENT_NAME域中全是空格符時,填入*。(5
43、) 把STUDENT_NAME移到PRINT_LINE的前30個字節(jié)中,把STUDENT_ ADDR移到PRINT_LINE的后9個字節(jié)中。答:公共的程序段如下:MOVDI, DSMOVES, DI(1) MOVCX, 132MOVAL., ;空格的ASCII碼送AL寄存器CLDLEADI, PRINT_LINEREPSTOSB(2) MOVCX, 9MOVAL., -CLDLEADI, STUDENT_ ADDRREPNESCASBJNENO_DASHDECDINO_DASH: (3) MOVCX, 9MOVAL., -STDLEADI, STUDENT_ ADDRADDDI, 9-1REP
44、NESCASBJNENO_DASHINCDINO_DASH: (4) MOVCX, 30MOVAL, ;空格的ASCII碼送AL寄存器CLDLEADI, STUDENT_NAMEREPESCASBJNENEXTMOVCX, 30MOVAL, * ;“*”的ASCII碼送AL寄存器LEADI, STUDENT_NAMEREPSTOSBNEXT: (5) MOVCX, 30CLDLEASI, STUDENT_NAMELEADI, PRINT_LINEREPMOVSBMOVCX, 9STDLEASI, STUDENT_ADDR+9-1LEADI, PRINT_LINE+132-1REPMOVSB3.
45、32 編寫一程序段:比較兩個5字節(jié)的字符串OLDS和NEWS,如果OLDS字符串不同于NEWS字符串則執(zhí)行NEW_LESS;否則順序執(zhí)行程序。答:程序段如下:MOVCX, 5CLDMOVDI, SEG OLDSMOVDS, DIMOVES, DILEASI, OLDSLEADI, NEWSREPECMPSBJNENEW_LESSNEW_LESS:3.33 假定AX和BX中的內容為帶符號數,CX和DX中的內容為無符號數,請用比較指令和條件轉移指令實現(xiàn)以下判斷:(1) 若DX的內容超過CX的內容,則轉去執(zhí)行EXCEED。(2) 若BX的內容大于AX的內容,則轉去執(zhí)行EXCEED。(3) 若CX的內
46、容等于0,則轉去執(zhí)行ZERO。(4) BX與AX的內容相比較是否產生溢出?若溢出則轉OVERFLOW。(5) 若BX的內容小于等于AX的內容,則轉EQ_SMA。(6) 若DX的內容低于等于CX的內容,則轉EQ_SMA。答:(1) CMPDX, CXJAEXCEED(2) CMPBX, AXJGEXCEED(3) JCXZZERO(4) CMPBX, AXJOOVERFLOW(5) CMPBX, AXJLEEQ_SMA(6) CMPDX, CXJBEEQ_SMA3.34 試分析下列程序段:ADDAX, BXJNOL1JNCL2SUBAX, BXJNC L3JNOL4JMPSHORT L5如果AX
47、和BX的內容給定如下:AX BX(1) 147BH80DCH(2) B568H42C8H(3) 42C8H608DH (4) D023H 9FD0H(5) 94B7H B568H問該程序分別在上面5種情況下執(zhí)行后,程序轉向哪里?答:(1) 轉向L1(2) 轉向L1(3) 轉向L2(4) 轉向L5;因為加法指令后AX中已經是6FF3H(5) 轉向L5;因為加法指令后AX中已經是4A14H3.35 指令CMP AX, BX后面跟著一條格式為J L1的條件轉移指令,其中可以是B、NB、BE、NBE、L、NL、LE、NLE中的任意一個。如果AX和BX的內容給定如下:AX BX(1) 1F52H 1F5
48、2H(2) 88C9H 88C9H(3) FF82H 007EH (4) 58BAH 020EH(5) FFC5H FF8BH(6) 09A0H 1E97H(7) 8AEAH FC29H(8) D367H 32A6H問以上8條轉移指令中的哪幾條將引起轉移到L1?答:(1) JNB、JBE、JNL、JLE(2) JNB、JBE、JNL、JLE(3) JNB、JNBE、JL、JLE(4) JNB、JNBE、JNL、JNLE(5) JNB、JNBE、JL、JLE(6) JB、JBE、JL、JLE(7) JB、JBE、JNL、JNLE(8) JNB、JNBE、JL、JLE3.36 假設X和X+2單元的
49、內容為雙精度數p,Y和Y+2單元的內容為雙精度數q,(X和Y為低位字)試說明下列程序段做什么工作?MOV DX, X+2MOV AX, XADD AX, XADC DX, X+2CMP DX, Y+2JL L2JG L1CMP AX, YJBE L2L1: MOV AX, 1JMP SHORT EXITL2: MOV AX, 2EXIT:INT 20H答:此程序段判斷p*2q,則使(AX)=1后退出;p*2q,則使(AX)=2后退出。3.37 要求測試在STATUS中的一個字節(jié),如果第1、3、5位均為1則轉移到ROUTINE_1;如果此三位中有兩位為1則轉移到ROUTINE_2;如果此三位中只
50、有一位為1則轉移到ROUTINE_3;如果此三位全為0則轉移到ROUTINE_4。試畫出流程圖,并編制相應的程序段。全為0嗎?二位為1嗎?僅一位為1執(zhí)行ROUTINE_3轉去執(zhí)行ROUTINE_4NNYY3.44題的程序流程圖程序開始(AL)(STATUS)只保留第1,3,5位轉去執(zhí)行ROUTINE_2全為1嗎?NY轉去執(zhí)行ROUTINE_1執(zhí)行EXIT程序結束答:程序段如下:MOVAL, STATUSANDAL, B ;只保留第1、3、5位JZROUTINE_4 ;3位全為0轉ROUTINE_4JPEROUTINE_2 ;兩位為1轉ROUTINE_2CMPAL, BJZROUTINE_1 ;3位全為1轉ROUTINE_1ROUTINE_3: ;僅一位為1執(zhí)行ROUTINE_3JMPEXITROUTIN
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度商務樓食堂承包經營服務合同4篇
- 2025年度國際旅游包機服務合同執(zhí)行2篇
- 2025年廠外施工臨時用水用電合同范本3篇
- 2025年度服裝出口銷售合同定制版3篇
- 2024版簡易工程承包合同
- 2025年度政府大數據服務中心外包服務合同范本4篇
- 2024聘用醫(yī)療設備維修工程師合同范本3篇
- 2025年度新型建筑鋼結構工程承包合同4篇
- 2025年度智慧停車系統(tǒng)設計與施工承包合同4篇
- 2025年度人工智能產業(yè)孵化器運營管理合同2篇
- 衡水市出租車駕駛員從業(yè)資格區(qū)域科目考試題庫(全真題庫)
- 護理安全用氧培訓課件
- 《三國演義》中人物性格探析研究性課題報告
- 注冊電氣工程師公共基礎高數輔導課件
- 土方勞務分包合同中鐵十一局
- 乳腺導管原位癌
- 冷庫管道應急預案
- 司法考試必背大全(涵蓋所有法律考點)
- 公共部分裝修工程 施工組織設計
- 《學習教育重要論述》考試復習題庫(共250余題)
- 裝飾裝修施工及擔保合同
評論
0/150
提交評論