版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第一章
1.1用降幕法和除法將下列十進制數(shù)轉(zhuǎn)換為二進制數(shù)和十六進制數(shù):
(1)369(2)10000(3)4095(4)32767
答:(1)369=101110001B=171H
(2)10000=10011100010000B=2710H
(3)4095=111111111111B=FFFH
(4)32767=111111111111111B=7FFFH
1.2將下列二進制數(shù)轉(zhuǎn)換為十六進制數(shù)和十進制數(shù):
(1)101101(2)10000000(3)1111111111111111(4)11111111
答:(1)101101B=2DH=45
(2)100()0000B=80H=128
(3)1111111111111111B=FFFFH=65535
(4)11111111B=FFH=255
1.3將下列十六進制數(shù)轉(zhuǎn)換為二進制數(shù)和十進制數(shù):
(1)FA(2)5B(3)FFFE(4)1234
答:(1)FAH=11111010B=250
(2)5BH=1011011B=91
(3)FFFEH=1111111111111110B=65534
(4)1234H=1001000110100B=4660
1.4完成下列十六進制數(shù)的運算,并轉(zhuǎn)換為十進制數(shù)進行校核:
(1)3A+B7(2)1234+AF(3)ABCD-FE(4)7ABX6F
答:(1)3A+B7H=F1H=241
(2)1234+AFH=12E3H=4835
(3)ABCD-FEH=AACFH=43727
(4)7ABX6FH=35325H=217893
1.5下列各數(shù)均為十進制數(shù),請用8位二進制補碼計算下列各題,并用十六進制數(shù)表示其運算結(jié)果。
(1)(-85)+76(2)85+(-76)(3)85-76(4)85-(-76)(5)(-85)-76(6)-85-(-76)
答:(1)(-85)+76=10101011B+01001100B=llll0111B=0F7H;CF=0;0F=0
(2)85+(-76)=01010101B+10110100B=00001001B=09H;CF=1:OF=0
(3)85-76=01010101B-01001100B=01010101B+10110100B=00001001B=09H;CF=O;OF=0
(4)85-(-76)=01010101B-10110100B=01010101B+010011OOB=1O1OOOO1B=OA1H;CF=O:0F=l
(5)(-85)-76=10101011B-01001100B=10101011B+101101006=01011111B=5FH:CF=O:0F=l
(6)-85-(-76)=10101011B-10110100B=10101011B+01001100B=l1110111B=OF7H;CF=O;0F=0
1.6下列各數(shù)為十六進制表示的8位二進制數(shù),請說明當它們分別被看作是用補碼表示的帶符號數(shù)或無符
號數(shù)時,它們所表示的十進制數(shù)是什么?
(1)D8(2)FF
答:(1)D8H表示的帶符號數(shù)為-40,D8H表示的無符號數(shù)為216;
(2)FFH表示的帶符號數(shù)為T,FFH表示的無符號數(shù)為255。
1.7下列各數(shù)均為用十六進制表示的8位二進制數(shù),請說明當它們分別被看作是用補碼表示的數(shù)或字符的
ASCII碼時,它們所表示的十進制數(shù)及字符是什么?
(1)4F(2)2B(3)73(4)59
答:(1)4FH表示的十進制數(shù)為79,4FH表示的字符為0:
(2)2BH表示的十進制數(shù)為43,2BH表示的字符為+;
(3)73H表示的十進制數(shù)為115,73H表示的字符為s;
(4)59H表示的十進制數(shù)為89,59H表示的字符為Y。
1.8請寫出下列字符串的ASCII碼值。
Forexample,
Thisisanumber3692.
答:46H6FH72H20H65H78H61H6DH70H6CH65H2CHOAHODH
54H68H69H73H20H6911731120H61H20H6EH75116DH62H65H721120H33H36H39H32H2EHOAHODH
第二章
2.1
在80x86微機的輸入/輸出指令中,I/O端口號通常是由DX寄存器提供的,但有時也可以在指令中直接指
定OO'FFH的端口號。試問可直接由指令指定的I/O端口數(shù)。
答:可直接由指令指定的I/O端口數(shù)為256個。
2.2有兩個16位字1EE5H和2A3CH分別存放在80x86微機的存儲器的OOOBOH和000B3H單元中,請用圖表
示出它們在存儲器里的存放情況。
答:存儲器里的存放情況如右下圖所示:
OOOBOHE5H
000B1H1EH
000B2H
000B3H3CH
000B4H2AH
2.3在IBMPC機的存儲器中存放信息如右下圖所示。試讀出30022H和30024H字節(jié)單元的內(nèi)容,以及30021H
和30022H字單元的內(nèi)容。
30020H12H
30021II34H
30022HABH
30023HCDH
30024HEFH
答:30022H字節(jié)單元的內(nèi)容為ABH;3002仙字節(jié)單元的內(nèi)容為EFH。30021H字單元的內(nèi)容為AB34H;30022H
字單元的內(nèi)容為CDABH。
2.4在實模式下,段地址和偏移地址為3017:000A的存儲單元的物理地址是什么?如果段地址和偏移地址
是3015:002A和3010:007A呢?
答:3017:000A.3015:002A和3010:007A的存儲單元的物理地址都是3017AH。
2.5如果在一個程序開始執(zhí)行以前(CS)=0A7F0H,(如16進制數(shù)的最高位為字母,則應(yīng)在其前加一個0)
(IP)=2B40H,試問該程序的第一個字的物理地址是多少?
答:該程序的第一個字的物理地址是0AAA40H。
2.6在實模式下,存儲器中每一段最多可有10000H個字節(jié)。如果用調(diào)試程序DEBUG的r命令在終端上顯示
出當前各寄存器的內(nèi)容如下,請畫出此時存儲器分段的示意圖,以及條件標志OF、SF、ZF、CF的值。
AX=OOOOBX=OOOOCX=0079DX=OOOOSP=FFEEBP=OOOO
SI=0000DI=0000DS=10E4ES=10F4SS=21F0CS=31FF
IP=0100NVUPDIPLNZNAP0NC
答:此時存儲器分段的示意圖如右圖所示。OF、SF、ZF、CF的值都為0。
2.7下列操作可使用那些寄存器?
(1)加法和減法數(shù)據(jù)寄存器等
(2)循環(huán)計數(shù)CX
(3)乘法和除法AX、DX,乘數(shù)和除數(shù)用其他寄存器或存儲器
(4)保存段地址段寄存器
(5)表示運算結(jié)果為0ZF=1
(6)將要執(zhí)行的指令地址CS:IP
(7)將要從堆棧取出數(shù)據(jù)的地址SS:SP
答:答案見題目的右邊。
2.8那些寄存器可以用來指示存儲器地址?
答:BX、BP、SI、DI、堆棧操作時的SP、對應(yīng)的段地址、386及其后繼機型的Exx。
2.9請將下列左邊的項和右邊的解釋聯(lián)系起來(把所選字母放在括號中):
(1)CPU(M)A.保存當前棧頂?shù)刂返募拇嫫鳌?/p>
(2)存儲器(C)B.指示下一條要執(zhí)行的指令的地址。
(3)堆棧(D)C.存儲程序、數(shù)據(jù)等信息的記憶裝置,微機有RAM和ROM兩種。
(4)IP(B)[).以后進先出方式工作的存儲空間。
(5)SP(A)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.記錄指令操作結(jié)果的標志,共6位:OF、SF、ZF、AF、PF、CF?
(13)連接程序(I)M.分析、控制并執(zhí)行指令的部件,由算術(shù)邏輯部件ALU和寄存器等
組成。
(14)指令(0)N.由匯編程序在匯編過程中執(zhí)行的指令。
(15)偽指令(N)0.告訴CPU要執(zhí)行的操作(一般還要指出操作數(shù)地址),在程序運行時
執(zhí)行。
答:答案見題口的括號中。
第三章
3.1給定(BX)=637DH,(SI)=2A9BH,位移量D=7237H,試確定在以下各種尋址方式下的有效地址是什么?
(1)立即尋址
(2)直接尋址
(3)使用BX的寄存器尋址
(4)使用BX的簡接尋址
(5)使用BX的寄存器相對尋址
(6)基址變址尋址
(7)相對基址變址尋址
答:(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;超過了段的邊界,最高進位位丟失,因此EAR04FH。
3.2試根據(jù)以下要求寫出相應(yīng)的匯編語言指令
(1)把BX寄存器和DX寄存器的內(nèi)容相加,結(jié)果存入DX寄存器中。
(2)用寄存器BX和SI的基址變址尋址方式把存儲器中的一個字節(jié)與AL寄存器的內(nèi)容相加,并把結(jié)果送到
AL寄存器中。
(3)用寄存器BX和位移量OB2H的寄存器相對尋址方式把存儲器中的一個字和(CX)相加,并把結(jié)果送回存
儲器中。
(4)用位移量為0524H的直接尋址方式把存儲器中的一個字與數(shù)2A59H相加,并把結(jié)果送回存儲單元中。
(5)把數(shù)OB5H與(AL)相加,并把結(jié)果送回AL中。
答:⑴ADDDX,BX
(2)ADDAL,[BX][SI]
(3)ADD[BX+0B2H],CX
(4)ADDWORDPTR[0524H],2A59H
(5)ADDAL,0B5H
3.3寫出把首地址為BLOCK的字數(shù)組的第6個字送到DX寄存器的指令。要求使用以下幾種尋址方式:
(1)寄存器間接尋址
(2)寄存器相對尋址
(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)=010011,(SI)=0002H,(2010011)=1211,(2010111)=3411,(20102H)=56H,
(20103H)=78H,(21200H)=2AH,(21201H)=4CH,(21202H)=B7H,(21203H)=65H,試說明下列各條指令執(zhí)行
完后AX寄存器的內(nèi)容。
(1)MOVAX,1200H
(2)MOVAX,BX
(3)MOVAX,[1200H]
(4)MOVAX,[BX]
(5)MOVAX,1100[BX]
(6)MOVAX,[BX][SI]
(7)MOVAX,1100EBX][Sil
答:(1)(AX)=120011
(2)(AX)=0100H
(3)(AX)=4C2AH
(4)(AX)=3412H
(5)(AX)=4C2AH
(6)(AX)=7856H
(7)(AX)=65B7H
3.5給定(IP)=2BC0H,(CS)=0200H,位移量D=5U9H,(BX)=1200H,(DS)=212AH,(224A0H)=0600H,
(275B9H)=098AH,試為以下的轉(zhuǎn)移指令找出轉(zhuǎn)移的偏移地址。
(1)段內(nèi)直接尋址
(2)使用BX及寄存器間接尋址方式的段內(nèi)間接尋址
(3)使用BX及寄存器相對尋址方式的段內(nèi)間接尋址
答:(1)JMPNEARPTR5119H;(IP)=5119H+((IP)+03H)=7CDCH,物理地址PA=09CDCH
(IP)+03H是JMPNEARPTR5119H指令的下一條指令的首地址。
(2)JMPWORDPTR[BX];(IP)=((DS)*10H+(BX))=0600H,PA=02600H
(3)JMPD[BX];(IP)=((DS)*10H+(BX)+D)=098AH,PA=0298AH
3.6設(shè)當前數(shù)據(jù)段寄存器的內(nèi)容為1BOOH,在數(shù)據(jù)段的偏移地址2000H單元內(nèi),含有一個內(nèi)容為OFF1OH和
8000H的指針,它們是一個16位變量的偏移地址和段地址,試寫出把該變量裝入AX的指令序列,并畫圖
表示出來。
答:MOVBX,[2000H];圖示如上所示。
MOVAX,[2000H+2]
MOVES,AX
MOVAX,ES:[BX]
3.7在0624H單元內(nèi)有一條二字節(jié)JMPSHORTOBJ指令,如其中位移量為(1)27H,(2)6BH,(3)0C6H,
試問轉(zhuǎn)向地址OBJ的值是多少?
答:(1)0BJ=0624H+02H+27H=064DH
(2)OBJ=0624H+02H+6BH=0691H
(3)0BJ=0624H+02H+0C6H=05ECH;C6H對應(yīng)的負數(shù)為-3AH(向上轉(zhuǎn)移,負位移量)
3.8假定(DS)=2000H,(ES)=210011,(SS)=1500H,(SI)=OOAOH,(BX)=010011,(BP)=001011,數(shù)據(jù)段中變量
名VAL的偏移地址為0050H,試指出下列源操作數(shù)字段的尋址方式是什么?其物理地址值是多少?
(1)MOVAX,OABH(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=2010011
(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=201F0H
3.9在ARRAY數(shù)組中依次存儲了七個字數(shù)據(jù),緊接著是名為ZERO的字單元,表示如下:
ARRAYDW23,36,2,100,32000,54,0
ZERODW?
(1)如果BX包含數(shù)組ARRAY的初始地址,請編寫指令將數(shù)據(jù)0傳送給ZERO單元。
(2)如果BX包含數(shù)據(jù)0在數(shù)組中的位移量,請編寫指令將數(shù)據(jù)0傳送給ZERO單元。
答:(1)MOVAX,[BX+(7-l)*2]
MOV[BX+(7)*2],AX
(2)MOVAX,ARRAY[BX]
MOVARRAY[BX+2],AX
3.10如TABLE為數(shù)據(jù)段中0032單元的符號名,其中存放的內(nèi)容為1234H,試問以下兩條指令有什么區(qū)別?
指令執(zhí)行完后AX寄存器的內(nèi)容是什么?
MOVAX,TABLE
LEAAX,TABLE
答:MOVAX,TABLE是將TABLE單元的內(nèi)容送到AX,(AX)=1234H
LEAAX,TABLE是將TABLE單元的有效地址送到AX,(AX)=0032H
3.11執(zhí)行下列指令后AX寄存器中的內(nèi)容是什么?
TABLEDW10,20,30,40,50;OOOAH,0014H,001EH,002811,0032H
ENTRYDW3
I
I
I
MOVBX,OFFSETTABLE
ADDBX,ENTRY
MOVAX,[BX]
答:(AX)=1EOOH(TABLE的存儲方式如右圖所示)
3.12下列ASCII碼串(包括空格符)依次存儲在起始地址為CSTRING的字節(jié)單元中:
CSTRINGDB*BASEDADDRESSING'
請編寫指令將字符串中的第1個和第7個字符傳送給DX寄存器。
答:MOVDH,CSTRING
MOVDL,CSTRING+7-1
3.13己知堆棧段寄存器SS的內(nèi)容是OFFAOH,堆棧指針寄存器SP的內(nèi)容是OOBOH,先執(zhí)行兩條把8057H和
OF79H分別進棧的PUSH指令,再執(zhí)行一條POP指令。試畫出堆棧區(qū)和SP的內(nèi)容變化過程示意圖(標出存儲
單元的物理地址)。
答:堆棧區(qū)和SP的內(nèi)容變化過程示意圖如下左圖所示。
3.14設(shè)(DS)=1BOO1I,(ES)=2B00II,有關(guān)存儲單元的內(nèi)容如上右圖所示。請寫出兩條指令把字變量X裝入
AX寄存器。
答:MOVBX,[2000H]
MOVAX,ES:[BX]
3.15求出以下各十六進制數(shù)與十六進制數(shù)62A0H之和,并根據(jù)結(jié)果設(shè)置標志位SF、ZF、CF和0F的值。
(1)1234H(2)4321H(3)CFAOH(4)9D60H
答:(1)和為74D4H;SF=O,ZF=O,CF=O,0F=0
(2)和為A5C1H;SF=1,ZF=O,CF=O,0F=l
(3)和為3240H;SF=O,ZF=O,CF=1,0F=0
(4)和為0000H;SF=O,ZF=1,CF=1,0F=0
3.16求出以下各十六進制數(shù)與十六進制數(shù)4AE0H的差值,并根據(jù)結(jié)果設(shè)置標志位SF、ZF、CF和0F的值。
(1)1234H(2)5D90H(3)9090H(4)EA04H
答:(1)差為C754H:SF=1,ZF=O,CF=1,0F=0
(2)差為基BOH;SF=O,ZF=O,CF=O.0F=0
(3)差為45B0H;SF=O,ZF=O,CF=O,0F=l
(4)差為9F24H;SF=1,ZF=O,CF=O,0F=0
3.17寫出執(zhí)行以下計算的指令序列,其中X、Y、Z、R、W均為存放16位帶符號數(shù)單元的地址。
(1)Z-W+G-X)(2)Z-W-(X+6)-(R+9)
(3)Z*-(W*X)/(Y+6),R-余數(shù)(4)Z*-((W-X)/5*Y)*2
答:(1)MOVAX,Z;以下程序都未考慮帶符號數(shù)的溢出
SUBAX,X
ADDAX,W
MOVZ,AX
(2)MOVBX,X
ADDBX,6
MOVCX,R
ADDCR,9
MOVAX,W
SUBAX,BX
SUBAX,CX
MOVZ,AX
(3)ADDY,6
MOVAX,W
IMULX
IDIVY
MOVZ,AX
MOVR,DX
(4)MOVAX,W
SUBAX,X
CWD
MOVBX,5
IDIVBX
IMULY
SHLAX,1;((DX),(AX))*2
RCLDX,1
3.18已知程序段如下:
MOVAX,1234H;(AX)=1234H,標志位不變
MOVCL,4:(AX)和標志位都不變
ROLAX,CL;(AX)=2341H,CF=1,SF和ZF不變
DECAX;(AX)=2340H,CF=1不變,SF=O,ZF=O
MOVCX,4;(AX)和標志位都不變
MULCX:(AX)=8D00H,CF=OF=O,其它標志無定義
INT20H
試問:
(1)每條指令執(zhí)行完后,AX寄存器的內(nèi)容是什么?
(2)每條指令執(zhí)行完后,進位、符號和零標志的值是什么?
(3)程序結(jié)束時,AX和DX的內(nèi)容是什么?
答:(1)見注釋:
(2)見注釋;
(3)(AX)=8D00H,(DX)=O
3.19下列程序段中的每條指令執(zhí)行完后,AX寄存器及CF、SF、ZF和OF的內(nèi)容是什么?
MOVAX,0;(AX)=O,標志位不變
DECAX;(AX)=OFFFFH,CF不變,SF=1,ZF=0,0F=0
ADDAX,7FFFH;(AX)=7FFEH,CF=1,SF=O,ZF=O,0F=0
ADDAX,2;(AX)=8000H,CF=0,SF=1,ZF=O,OF=1
NOTAX;(AX)=7FFFH,標志位不變
SUBAX,OFFFFH;(AX)=8000H,CF=1,SF=1,ZF=O,OF=1
ADDAX,8000H:(AX)=O,CF=1,SF=O,ZF=1,OF=1
SUBAX,1;(AX)=OFFFFH,CF=1,SF=1,ZF=O,0F=0
ANDAX,58D1H;(AX)=58D1H,CF=0,SF=O,ZF=O,0F=0
SALAX,1;(AX)=OB1A2H,CF=O,SF=1,ZF=O,OF=1
SARAX,1;(AX)=OD8D1H,CF=O,SF=1,ZF=O,0F=0
NEGAX;(AX)=272FH,CF=1,SF=O,ZF=O,0F=0
RORAX,1;(AX)=9397H,CF=1,SF和ZF不變,OF=1
答:見注釋。
3.20變量DATAX和變量DATAY的定義如下:
DATAXDW0148H
DW2316H
DATAYDW0237H
DW4052H
請按下列要求寫出指令序列:
(1)DATAX和DATAY兩個字數(shù)據(jù)相加,和存放在DATAY中。
(2)DATAX和DATAY兩個雙字數(shù)據(jù)相加,和存放在從DATAY開始的雙字單元中。
(3)解釋下列指令的作用:
STC
MOVBX,DATAX
ADCBX,DATAY
(4)DATAX和DATAY兩個字數(shù)據(jù)相乘(用MUL)。
(5)DATAX和DATAY兩個雙字數(shù)據(jù)相乘(用MUL)。
(6)DATAX除以23(用DIV)。
(7)DATAX雙字除以字DATAY(用DIV)。
答:(1)MOVAX,DATAX
ADDDATAY,AX
MOVAX,DATAX+2
ADDDATAY+2,AX
(2)MOVAX,DATAX
ADDDATAY,AX
MOVAX,DATAX+2
ADCDATAY+2,AX
MOVDATAY+4,0;用于存放進位位
ADCDATAY+4,0
(3)DATAX和DATAY兩個字數(shù)據(jù)之和加1,結(jié)果存入BX寄存器。
(4)RESULT1DW0
DW0
RESULT2DW0
DW0
1
1
?
MOVAX,DATAX
MULDATAY
MOVRESULT1,AX
MOVRESULT1+2,DX
MOVAX,DATAX+2
MULDATAY+2
MOVRESULT2,AX
MOVRESULT2+2,DX
(5)AADW0
BBDW0
CCDW0
DDDW0
1
?
1
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
(6)MOVAX,DATAX
MOVBL,23
DIVBL
(7)MOVDX,DATAX+2
MOVAX,DATAX
DIVDATAY
3.21寫出對存放在DX和AX中的雙字長數(shù)求補的指令序列。
答:NEGDX也可為:NOTDX
NEGAXNOTAX
SBBDX,0ADDAX,1
ADCDX,0
3.22試編寫一程序求出雙字長數(shù)的絕對值。雙字長數(shù)在A和A+2單元中,結(jié)果存放在B和B+2單元中。
答:程序段如下:
MOVAX,A
MOVDX,A+2
CMPDX,0
JNSZHENSHU;不是負數(shù)則轉(zhuǎn)走
NEGDX
NEGAX
SBBDX,0
ZHENSHU:MOVB,AX
MOVB+2,DX
INT20H
3.23假設(shè)(BX)=0E3H,變量VALUE中存放的內(nèi)容為79H,確定下列各條指令單獨執(zhí)行后的結(jié)果。
(1)XORBX,VALUE;(BX)=9AH,CF、OF都為0,AF無定義,SF=1,ZF=O,PF=1
(2)ANDBX,VALUE;(BX)=61H,CF、OF都為0,AF無定義,SF=0,ZF=O,PF=O
(3)ORBX,VALUE;(BX)=OFBH,CF、OF都為0,AF無定義,SF=1,ZF=O,PF=O
(4)XORBX,OFFH;(BX)=1CH,CF、OF都為0,AF無定義,SF=O,ZF=O,PF=O
(5)ANDBX,0;(BX)=OOH,CF、OF都為0,AF無定義,SF=O,ZF=1,PF=1
(6)TESTBX,01H;(BX)=0E3H,CF、OF都為0,AF無定義,SF=1,ZF=O,PF=0
答:見注釋。
3.24試寫出執(zhí)行下列指令序列后BX寄存器的內(nèi)容。執(zhí)行前(BX)=6D16H。
MOVCL,7
SHRBX,CL
答:(BX)=OODAHo
3.25試用移位指令把十進制數(shù)+53和-49分別乘以2。它們應(yīng)該用什么指令?得到的結(jié)果是什么?如果要
除以2呢?
答:MOVAL,53
SALAL,1;(AL)=(+53*2)=6AH
MOVAL,-49
SALAL,1:(AL)=(-49*2)=9EH
MOVAL,53
SARAL,1;(AL)=(53/2)=1AH
MOVAL,-49
SARAL,1:(AL)=(-49/2)=0E7H
3.26試分析下面的程序段完成什么功能?
MOVCL,04
SHLDX,CL
MOVBL,AH
SHLAX,CL
SHRBL,CL
ORDL,BL
答:本程序段將((DX),(AX))的雙字同時左移4位,即將此雙字乘以10H(16)o
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;(DX)=72H
(5)RORDX,CL;(DX)=2O17H
(6)ROLDL,CL;(DX)=OCDH
(7)SALDH,1;(DX)=0B9H
(8)RCLDX,CL;(DX)=2CCH
(4)RCRDL,1;(DX)=ODCH
答:見注釋。
3.28下列程序段執(zhí)行完后,BX寄存器的內(nèi)容是什么?
MOVCL,3
MOVBX,0B7H
ROLBX,1
RORBX,CL
答:(BX)=0C02DHo
3.29假設(shè)數(shù)據(jù)段定義如下:
CONAMEDB'SPACEEXPLORERSINC.'
PRUNEDB20DUP('')
用串指令編寫程序段分別完成以下功能:
(1)從左到右把CONAME中的字符串傳送到PRLINEo
(2)從右到左把CONAME中的字符串傳送到PRLINEo
(3)把CONAME中的第3和第4個字節(jié)裝入AX。
(4)把AX寄存器的內(nèi)容存入從PRLINE+5開始的字節(jié)中。
(5)檢查CONAME字符串中有無空格字符,如有則把第一個空格字符的地址傳送給BX寄存器。
答:(1)MOVCX,20
CLD
MOVSI,SEGCONAME
MOVDS,SI
MOVES,SI
LEASI,CONAME
LEADI,PRUNE
REPMOVSB
(2)MOVCX,20
STD
MOVSI,SEGCONAME
MOVDS,SI
MOVES,SI
LEASI,CONAME
ADDSI,20-1
LEADI,PRUNE
ADDDI,20-1
REPMOVSB
(3)MOVAX,WORDPTRCONAME+3-1
(4)MOVWORDPTRPRUNE+5,AX
(5)MOVAL,'';空格的ASCII碼送AL寄存器
CLD
MOVDI,SEGCONAME
MOVES,DI
LEADI,CONAME
REPNESCASB
JNENEXT
DECDI
MOVBX,DI
NEXT::
3.30編寫程序段,把字符串STRING中的'&'字符用空格符代替。
STRINGDB'ThedateisFEB&03,
答:程序段如下:
MOVCX,18
MOVAL,'&'
CLD
MOVDI,SEGSTRING
MOVES,DI
LEADI,STRING
REPNESCASB
JNENEXT
DECDI
MOVES:BYTEPTR[DI],'f;送空格符
NEXT::
3.31假設(shè)數(shù)據(jù)段中數(shù)據(jù)定義如下:
STUDENT_NAMEDB30DUP(?)
STUDENT_ADDRDB9DUP(?)
PRINTLINEDB132DUP(?)
分別編寫下列程序段:
(1)用空格符清除PRINT_LINE域。
(2)在STUDENT_ADDR中查找第一個。
(3)在STUDENT_ADDR中查找最后一個。
(4)如果如UDENT—NAME域中全是空格符時,填入。
(5)把STUDENTNAME移到PRINTLINE的前30個字節(jié)中,把STUDENT,ADDR移到PRINTLINE的后9個字
節(jié)中。
答:公共的程序段如下:
MOVDI,DS
MOVES,DI
(1)MOVCX,132
MOVAL.,'';空格的ASCH碼送AL寄存器
CLD
LEADI,PRINTLINE
REPSTOSB
(2)MOVCX,9
MOVAL.,」
CLD
LEADI,STUDENT,ADDR
REPNESCASB
JNENO_DASH
DECDI
NO_DASH::
(3)MOVCX,9
MOVAL.,一
STD
LEADI,STUDENT,ADDR
ADDDI,9-1
REPNESCASB
JNENODASH
INCDI
NO_DASH::
(4)MOVCX,30
MOVAL,'';空格的ASCII碼送AL寄存器
CLD
LEADI,STUDENT_NAME
REPESCASB
JNENEXT
MOVCX,30
MOVAL,;"*”的ASCH碼送AL寄存器
LEADI,STUDENT_NAME
REPSTOSB
NEXT:;
(5)MOVCX,30
CLD
LEASI,STUDENTNAME
LEADI,PRINTLINE
REPMOVSB
MOVCX,9
STD
LEASI,STUDENT_ADDR+9-l
LEADI,PRINT_LINE+132-1
REPMOVSB
3.32編寫一程序段:比較兩個5字節(jié)的字符串OLDS和NEWS,如果OLDS字符串不同于NEWS字符串則執(zhí)行
NEW_LESS;否則順序執(zhí)行程序。
答:程序段如下:
MOVCX,5
CLD
MOVDI,SEGOLDS
MOVDS,DI
MOVES,DI
LEASI,OLDS
LEADI,NEWS
REPECMPSB
JNENEW_LESS
1
?
?
NEW_LESS::
3.33假定AX和BX中的內(nèi)容為帶符號數(shù),CX和DX中的內(nèi)容為無符號數(shù),請用比較指令和條件轉(zhuǎn)移指令實
現(xiàn)以下判斷:
(1)若DX的內(nèi)容超過CX的內(nèi)容,則轉(zhuǎn)去執(zhí)行EXCEED。
(2)若BX的內(nèi)容大于AX的內(nèi)容,則轉(zhuǎn)去執(zhí)行EXCEED。
(3)若CX的內(nèi)容等于0,則轉(zhuǎn)去執(zhí)行ZERO。
(4)BX與AX的內(nèi)容相比較是否產(chǎn)生溢出?若溢出則轉(zhuǎn)OVERFLOW.
(5)若BX的內(nèi)容小于等于AX的內(nèi)容,則轉(zhuǎn)EQ_SMA。
(6)若DX的內(nèi)容低于等于等的內(nèi)容,則轉(zhuǎn)EQ_SMA。
答:⑴CMPDX,CX
JAEXCEED
(2)CMPBX,AX
JGEXCEED
(3)JCXZZERO
(4)CMPBX,AX
JOOVERFLOW
(5)CMPBX,AX
JLEEQ_SMA
(6)CMPDX,CX
JBEEQSMA
3.34試分析下列程序段:
ADDAX,BX
JNOLI
JNCL2
SUBAX,BX
JNCL3
JNOL4
JMPSHORTL5
如果AX和BX的內(nèi)容給定如下:
AXBX
(1)147BH80DCH
(2)B568H42C8H
(3)42C8H608DH
(4)D023H9FD0II
(5)94B7HB568H
問該程序分別在上面5種情況下執(zhí)行后,程序轉(zhuǎn)向哪里?
答:⑴轉(zhuǎn)向L1
⑵轉(zhuǎn)向LI
⑶轉(zhuǎn)向L2
(4)轉(zhuǎn)向L5;因為加法指令后AX中已經(jīng)是6FF3H
(5)轉(zhuǎn)向L5;因為加法指令后AX中已經(jīng)是4Al4H
3.35指令CMPAX,BX后面跟著一條格式為J…L1的條件轉(zhuǎn)移指令,其中…可以是B、NB、BE、NBE、L、
NL、LE、NLE中的任意一個。如果AX和BX的內(nèi)容給定如下:
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、JBE、JNL、JLE
(2)JNB、JBE、JNL、JLE
⑶JNB、JNBE,JL、JLE
(4)JNB、JNBE、JNL、JNLE
(5)JNB、JNBE、JL、JLE
(6)JB、JBE、JL、JLE
(7)JB、JBE,JNL,JNLE
⑻JNB、JNBE、JL、JLE
3.36假設(shè)X和X+2單元的內(nèi)容為雙精度數(shù)p,Y和Y+2單元的內(nèi)容為雙精度數(shù)q,(X和Y為低位字)試說明
下列程序段做什么工作?
MOVDX,X+2
MOVAX,X
ADDAX,X
ADCDX,X+2
CMPDX,Y+2
JLL2
JGLI
CMPAX,Y
JBEL2
LI:MOVAX,1
JMPSHORTEXIT
L2:MOVAX,2
EXIT:INT20H
答:此程序段判斷P*2>q,則使(AX)=1后退出;p*2Wq,則使(AX)=2后退出。
3.37要求測試在STATUS中的一個字節(jié),如果第1、3、5位均為1則轉(zhuǎn)移到ROUTINE」;如果此三位中有
兩位為1則轉(zhuǎn)移到ROUTINE/;如果此三位中只有一位為1則轉(zhuǎn)移到ROUTINER;如果此三位全為0則轉(zhuǎn)移
到ROUTINE_4。試畫出流程圖,并編制相應(yīng)的程序段。
答:程序段如下:
MOVAL,STATUS
ANDAL,OOO1O1O1B;只保留第1、3、5位
JZR0UTINE_4;3位全為0轉(zhuǎn)ROUTINE_4
JPEROUTINE_2;兩位為1轉(zhuǎn)ROUTINE_2
CMPAL,00010101B
JZROUTINE」;3位全為1轉(zhuǎn)ROUTINE」
ROUTINE_3:?;僅一位為1執(zhí)行ROUTINE_3
JMPEXIT
ROUTINE_1:;
JMPEXIT
R0UTINE_2:;
JMPEXIT
ROUTINE4::
EXIT:INT20H
3.38在下列程序的括號中分別填入如下指令:
(1)LOOPL20
(2)LOOPEL20
(3)LOOPNEL20
試說明在三種情況下,當程序執(zhí)行完后,AX、BX、
CX、DX四個寄存器的內(nèi)容分別是什么?
TITLEEXLOOP.COM
CODESGSEGMENT
ASSUMECS:CODESG,DS:CODSEG,SS:CODSEG
ORG100H
BEGIN:MOVAX,01
MOVBX,02
MOVDX,03
MOVCX,04
L20:
INCAX
ADDBX,AX
SHRDX,1
()
RET
CODESGENDS
ENDBEGIN
答:(1)(AX)=5H,(BX)=10H,(CX)=0H,(DX)=OH
(2)(AX)=2H,(BX)=4H,(CX)=3H,(DX)=1H
(3)(AX)=3H,(BX)=7H,(CX)=2H,(DX)=OH
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);
請畫出每次調(diào)用及返回時的堆棧狀態(tài)。
答:每次調(diào)用及返回時的堆棧狀態(tài)圖如下所示:
3.40假設(shè)(EAX)=00001000H,(EBX)=00002000H,(DS)=0010H,試問下列指令訪問內(nèi)存的物理地址是什么?
(1)MOVECX,[EAX+EBX]
(2)MOV[EAX+2*EBX],CL
(3)MOVDH,[EBX+4*EAX+1000H]
答:(1)PA=(DS)*1OH+EA=OO100H+00001000H+00002000H=000031OOH
(2)PA=(DS)*10H+EA=001001l+00001000H+2*00002000H=00005100H
(3)PA=(DS)*1OH+EA=OO100H+00002000H+4*00001000H+1000H=000071OOH
3.41假設(shè)(EAX)=9823F456H,(ECX)=1F23491H,(BX)=348CH,(SI)=2000H,(DI)=4044H?在DS段中從偏移
地址4044H單元開始的4個字節(jié)單元中,依次存放的內(nèi)容為92H,6DH,0A2H和4CH,試問下列各條指令執(zhí)
行完后的目的地址及其中的內(nèi)容是什么?
(1)MOV[SI],EAX
(2)MOV[BX],ECX
(3)MOVEBX,[DI]
答:(1)目的地址為DS地000H,內(nèi)容依次為:5611,0F4H,23H和98H
(2)目的地址為DS為48CH,內(nèi)容依次為:91H,34H,OF2H和01H
(3)目的操作數(shù)為EBX寄存器,(EBX)=4CA26D92H
3.42說明下列指令的操作
(1)PUSHAX;將(AX)壓入堆棧
(2)POPESI;將堆棧中的雙字彈出到ESI寄存器中
(3)PUSH[BX];將((BX))對應(yīng)存儲單元中的字壓入堆棧
(4)PUSHA1);32位通用寄存器依次進棧
(5)POPDS;將堆棧中的字彈出到DS寄存器中
(6)PUSH4;將立即數(shù)4以字的方式壓入堆棧
答:見注釋。
3.43請給出下列各指令序列執(zhí)行完后目的寄存器的內(nèi)容。
(1)MOVEAX,299FF94H
ADDEAX,34FFFFH;(EAX)=2CEFF93H
(2)MOVEBX,40000000
SUBEBX,1500000;(EBX)=3EB00000H
(3)MOVEAX,3939383411
ANDEAX,OFOFOFOFH;(EAX)=09090804H
(4)MOVEDX,9FE35DH
XOREDX,OFOEOFOH;(EDX)=6F13ADH
答:見注釋。
3.44請給出下列各指令序列執(zhí)行完后目的寄存器的內(nèi)容。
(1)MOVBX,-12
MOVSXEBX,BX;(EBX)=OFFFFFFF4H
(2)MOVCL,-8
MOVSXEDX,CL;(EDX)=OFFFFFFF8H
(3)MOVAH,7
MOVZXECX,AH;(ECX)=OOOO0007H
(4)MOVAX,99H
MOVZXEBX,AX;(EBX)=00000099H
答:見注釋.
3.45請給出下列指令序列執(zhí)行完后EAX和EBX的內(nèi)容。
MOVECX,307F455H
BSFEAX,ECX;(EAX)=OD
BSREBX,ECX;(EBX)=25D
答:見注釋。
3.46請給出下列指令序列執(zhí)行完后AX和DX的內(nèi)容。
MOVBX,98H
BSFAX,BX;(AX)=3D
BSRDX,BX;(DX)=7D
答:見注釋。
3.47請編寫一程序段,要求把ECX、EDX和ESI的內(nèi)容相加,其和存入EDI寄存器中(不考慮溢出)。
答:MOVEDI,0也可為:MOVEDI,ECX
ADDEDI,ECXADDEDI,EDX
ADDEDI,EDXADDEDI,ESI
ADDEDI,ESI
3.48請說明IMULBX,DX,100H指令的操作。
答:(BX)-(DX)*10011
3.49試編寫一程序段,要求把BL中的數(shù)除以CL中的數(shù),并把其商乘以2,最后的結(jié)果存入DX寄存器中。
答:MOVAL,BL
MOVAH,0;假定為無符號數(shù),否則用CBW指令即可
DIVCL
MOVAH,0
SHLAX,1
MOVDX,AX
3.50請說明JMPDI和JMP[DI]指令的區(qū)別。
答:JMPDI是轉(zhuǎn)移到以(DI)內(nèi)容為偏移地址的單元去執(zhí)行指令;JMP[DI]是轉(zhuǎn)移到以(DI)間接尋址的內(nèi)存
單元內(nèi)容為偏移地址的單元去執(zhí)行指令。
3.51試編寫一程序段,要求在長度為100H字節(jié)的數(shù)組中,找出大于42H的無符號數(shù)的個數(shù)并存入字節(jié)單
元UP中;找出小于42H的無符號數(shù)的個數(shù)并存入字節(jié)單元DOWN中。
答:JMPBEGIN
UPDB0
DOWNDB0
TABLEDB100HDUP(?);數(shù)組
BEGIN:
MOVCX,100(1
MOVBX,-1
MOVSI,0
MOVDI,0
LI:INCBX
CMPTABLE[BX],42H
JAL2
JBL3
JMPL4
L2:INCSI
JMPL4
L3:INCDI
L4:LOOPLI
MOVUP,SI
MOVDOWN,DI
3.52請用圖表示ENTER16,0所生成的堆棧幀的情況。
答:答案見右圖。
第四章
4.1指出下列指令的錯誤:
(1)MOVAH,BX;寄存器類型不匹配
(2)MOV[BX],[SI];不能都是存儲器操作數(shù)
(3)MOVAX,[SI][DI];[SI]和[DI]不能一起使用
(4)MOVMYDAT[BX][SI],ES:AX:AX寄存器不能使用段超越
(5)MOVBYTEPTR[BX],1000;1000超過了?個字節(jié)的范圍
(6)MOVBX,OFFSETMYDAT[SI];MYDAT[SI]已經(jīng)是偏移地址,不能再使用OFFSET
(7)MOVCS,AX;CS不能用作目的寄存器
(8)MOVECX,AX;兩個操作數(shù)的數(shù)據(jù)類型不同
答:見注釋。
4.2下面哪些指令是非法的?(假設(shè)0P1,0P2是已經(jīng)用DB定義的變量)
(1)CMP15,BX;錯,立即數(shù)不能作為目的操作數(shù)
(2)CMP0P1,25
(3)CMP0P1,0P2;錯,不能都是存儲器操作數(shù)
(4)CMPAX,0P1;錯,類型不匹配,應(yīng)為CMPax,wordptropl
答:見注釋。
蟲3假設(shè)下列指令中的所有標識符均為類型屬性為字的變量,請指出下列哪些指令是非法的?它們的錯誤
是什么?
(1)MOVBP,AL;錯,寄存器類型不匹配
(2)MOVWORD_OP[BX+4*3][DI],SP
(3)MOVWORD_OP1,WORD_OP2;錯,不能都是存儲器操作數(shù)
(4)MOVAX,WORD_OP1[DX];錯,DX不能用于存儲器尋址
(5)MOVSAVE_WORD,DS
(6)MOVSP,SS:DATA_WORD[BX][SI]
(7)MOV[BX][SI],2;錯,[BX][SI]未指出數(shù)據(jù)類型
(8)MOVAX,WORD_OP1+WORD_OP2
(9)MOVAX,WORD_OPl-WORD_OP2+iOO
(10)MOVWORD_OPl,WORI)_OP1-WORD_OP2
答:見注釋。
4.4假設(shè)VARI和VAR2為字變量,LAB為標號,試指出下列指令的錯誤之處:
(1)ADDVARI,VAR2;不能都是存儲器操作數(shù)
(2)SUBAL,VARI;數(shù)據(jù)類型不匹配
(3)JMPLAB[SI];LAB是標號而不是變量名,后面不能加[SI]
(4)JNZVARI;VAR1是變量而不是標號
(5)JMPNEARLAB:應(yīng)使用NEARPTR
答:見注釋。
4.5畫圖說明下列語句所分配的存儲空間及初始化的數(shù)據(jù)值。
(1)BYTE_VARDB'BYTE',12,-12H,3DUP(O,?,2DUP(1,2),?)
(2)WORD_VARDW5DUP(0,1,2),?,-5,'BY','TE',25611
答:答案如下圖所示。
4.6試列出各種方法,使匯編程序把5150H存入一個存儲器字中(如:DW5150H)。
4.5題答案
42H
59H
54H
45H
0DH
EEH
00H
01H
02H
01H
02H
00H
01H
02H
01H
02H
BYTE_VAR
OOH
OOH
O1H
OOH
0211
OOH
FBH
FFH
OOH
59H
42H
45H
54H
56H
02H
WORDVAR
將上面
內(nèi)容再
重復(fù)4次
答:DW515011
DB50H,51H
DB'PQ'
DW'QP'
ORG5150H
DW$
4.7請設(shè)置一個數(shù)據(jù)段DATASG,其中定義以下字符變量或數(shù)據(jù)變量。
(1)FLD1B為字符串變量:'personalcomputer,;
(2)FLD2B為十進制數(shù)字節(jié)變量:32:
(3)FLD3B為十六進制數(shù)字節(jié)變量:20;
(4)FLD4B為二進制數(shù)字節(jié)變量:01011001;
(5)FLD5B為數(shù)字的字的I字符字節(jié)變量:32654;
(6)FLD6B為10個零的字節(jié)變量;
(7)ELD7B為零件名(ASCII碼)及其數(shù)量(十進制數(shù))的表格:
PART120
PART250
PART314
(8)FLD1W為十六進制數(shù)字變量:FFFO;
(9)FLD2W為二進制數(shù)的字變量:01011001;
(10)FLD3W為(7)零件表的地址變量;
(11)FLD4W為包括5個十進制數(shù)的字變量:5,6,7,8,9;
(12)FLD5W為5個零的字變量;
(13)FI.D6W為本段中字數(shù)據(jù)變量和字節(jié)數(shù)據(jù)變量之間的地址差。
答:DATASGSEGMENT
FLD1BDB'personalcomputer
FLD2BDB32
FLD3BDB20H
FLD4BDB01011001B
FLD5BDB'32654’
FLD6BDB10DUP(0)
FLD7BDB'PARTI',20
DB'PART2',50
DB'PART3',14
FLD1WDWOFFFOH
FLD2WDW010U001B
FLD3WDWFLD7B
FLD4WDW5,6,7,8,9
FLD5WDW5DUP(0)
FLD6WDWFLD1W-FLD1B
DATASGENDS
4.8假設(shè)程序中的數(shù)據(jù)定義如下:
PARTNODW?
PNAMEDB16DUP(?)
COUNTDD?
PLENTHEQU$-PARTNO
問PLENTH的值為多少?它表示什么意義?
答:PLENTH=22=16H,它表示變量PARTNO、PNAME,COUNT總共占用的存儲單元數(shù)(字節(jié)數(shù))。
4.9有符號定義語句如下:
BUFFDB1,2,3,'123'
EBUFFDB0
LEQUEBUFF-BUFF
問L的值是多少?
答:1.=6。
4.10假設(shè)程序中的數(shù)據(jù)定義如下:
LNAMEDB30DUP(?)
ADDRESSDB30DUP(?)
CITYDB15DUP(?)
CODE_LISTDB1,7,8,3,2
(1)用一條MOV指令將LNAME的偏移地址放入AX。
(2)用一條指令將CODE_LIST的頭兩個字節(jié)的內(nèi)容放入SIo
(3)用一條偽操作使C0DEJENGTH的值等于CODE_UST域的實際長度。
答:(1)MOVAX,OFFSETLNAME
(2)MOVSI,WORDPTRCODE_LIST
(3)CODE_LENGTHEQU$-CODE_LIST;此語句必須放在CODEJIST語句之后
4.11試寫出一個完整的數(shù)據(jù)段DATA_SEG,它把整數(shù)5賦予一個字節(jié),并把整數(shù)T,0,2,5和4放在10
字數(shù)組DATAJJST的頭5個單元中。然后,寫出完整的代碼段,其功能為:把DATA_LIST中頭5個數(shù)中的
最大值和最小值分別存入MAX和MIN單元中。
答:DATA_SEGSEGMENT
NUMDB5
DATA_LISTDW-1,0,2,5,4,5DUP(?)
MAXDW?
MINDW?
DATA_SEGENDS
C0DE__SEGSEGMENT
MAINPROCFAR
ASSUMECS:CODE_SEG,DS:DATA._SEG
START:PUSHDS;設(shè)置返回DOS
SUBAX,AX
PUSHAX
MOVAX,DATA_SEG;給DS賦值
MOVDS,AX
MOVCX,4;程序段開始
LEABX,DATA_LIST
MOVAX,[BX]
MOVMAX,AX
MOVMIN,AX
R0UT1:ADDBX,2
MOVAX,[BX]
CMPAX,MAX
JNGER0UT2
MOVMAX,AX
R0UT2:CMPAX,MIN
JNLER0UT3
MOVMIN,AX
ROUT3:LOOPROUT1;程序段結(jié)束
RET
MAINENDP
CODE_SEGENDS
ENDSTART
4.12給出等值語句如下:
ALPHAEQU100
BETAEQU25
GAMMAEQU2
下列表達式的值是多少?
(1)ALPHA*100+BETA;=2729H
(2)ALPHAMODGAMMA+BETA;=1911
(3)(ALPHA+2)*BETA-2;=9F4H
(4)(BETA/3)MOD5;=3H
(5)(ALPHA+3)*(BETAMODGAMMA);=6711
(6)ALPHAGEGAMMA;=OFFFFH
(7)BETAAND7;=01H
(8
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二年級下冊《買鮮花》課件版
- 2021屆浙江省寧波市九校高一上學(xué)期期末聯(lián)考數(shù)學(xué)試題(解析版)
- 人教版八年級上學(xué)期期中考試數(shù)學(xué)試卷-(含答案)
- 《風險投資方法》課件
- 2025年1月八省聯(lián)考高考綜合改革適應(yīng)性測試-高三化學(xué)(內(nèi)蒙古卷)
- 天津市和平區(qū)2023-2024學(xué)年高三上學(xué)期期末質(zhì)量調(diào)查英語試卷
- 醫(yī)藥行業(yè)前臺接待工作心得
- 家政服務(wù)保姆照顧技能培訓(xùn)總結(jié)
- 環(huán)保行業(yè)美工工作總結(jié)
- 貴州省安順市紫云縣2021-2022學(xué)年九年級上學(xué)期期末化學(xué)試題
- 智慧審計平臺項目匯報
- 湖北省天門市2022-2023學(xué)年三年級上學(xué)期語文期末試卷(含答案)
- 《建筑賦比興》一些筆記和摘錄(上)
- 【服裝企業(yè)比音勒芬服飾的財務(wù)問題分析(基于杜邦分析)9700字論文】
- 電氣工程及其自動化低壓電器中繼電器應(yīng)用
- 實驗九(b)液體表面張力系數(shù)的測定(用毛細管法)
- 全球機場三字碼、四字碼
- 2023-2024學(xué)年重慶市兩江新區(qū)四上數(shù)學(xué)期末質(zhì)量檢測試題含答案
- 泌尿外科內(nèi)鏡診療技術(shù)質(zhì)量保障措施及應(yīng)急預(yù)案
- M7.5漿砌塊石擋土墻砌筑施工方法
- 2022年度黑龍江省重點新產(chǎn)品名單
評論
0/150
提交評論