版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
第一或
11(如果十六進制效的最高位是字母(妣XB).剜應(yīng)在箕前制加0(零).如本墨(3))
(1)569D-101110001B-171H
(2)1000CD-1001110001000CB-2"10H
(3)4O95D-111111111111B-CFFFH
(4)52767D-1111111Hll1111B-TTFH
12
(1)101101B-Z)H-45D
(2)100000CXB-9CH-E8D
(3)11111111nil1111B-CHTFHM65535D
(4>11111111B-0FFH-255D
13
(1)CF.AH-11111O1CB-25OD
(2)31^1011011B-91D
(3)CFFFEH-111111111111m(E=65539
(4)12MH-1001000110100B-466CD
14
(D3AHYB計0F1H
(2)1234H-0.4FH-12E3H
(3)OABCEH-CFET^OAACFH
(5)7ABX6FH-35325H
15
(1)(-85D-:6I>10101011B-010011(XB-11110111B-CF-H
(2)85D-(-%DA01010101B-10110100B-00001001B-09H
(3)85D-761Aoi010101B-1011OMMB-OOOO1001B?09H
(4)85D-(--6D>01010101B-0100110CB-10100001B-0A1H
(5)(-85D)-^6D-1010101CB-10110100B?01011111B-5FH
(6)-85I>-(^6D>?10101011B-01001100B=llll011IB-0FTI
16
(1)CD8H
之果E校萼作臂三號政,則它表示一401>之其它衩舂任天號號數(shù).Mt216D.
(2)CFFH
之果E被詈住普與號致.別它表示一1D:力果它衩著作無左號數(shù).則它255D.
1.7
(1)-ffH.皿O'
(2)2BH,43D,
(3)硝115D,
(4)59H89D,'f
1.8
(1)For?a?ple,
46H6FH^H2CH65H^SH61H6DH'CH6cH65H2cH
(2)Ihuaaitrbir3692.
54H68H69H73H20H69H73H2cH61H20H6EH_5H6EH62H65H二H20H33H36H
39H32H2EH
第二B
2.1
256個
22
E5HOOOBOH
1EH000B1H
OOOB2H
3cHOOOB3H
2AH000B4H
3CO22H旬30024H字節(jié)單元的內(nèi)容分制為
C30022H?=CABH
C30024H?=CEFH
3OQ21H和30022H字單元的力容分制為
C30021H)=CAB34H
30022H?=0CD.4BH
邏輯拄址為3017:0O0A的存惚單元的打理地址為3017AH.
邏行運址為3015002A的¥惚單元的把建基址為3017AH.
邏篁叁址為30】。如1A的考情軍元的物理姓址為3017AH.
0AAA4CH
2.6
10EWH::*BU叁:
10F40H
2OE40H:“KklC〉
20F40H
21F00H(54K3)
31F00H
31FF0H(*K代三)
41FF0H
OF=0:SF=O:ZF=O:CF=C
AX,BX,CX,DX,SLDI
CX
(3)^BXCXDXSLDI
(4)CS:DS:SS:ES
(5)FLAGS
(6)cs;n>
(7)SS:SPBP
2.S
指示壽堵賽地址的寄存葵之下所示
S-;假參
CSIP
SSSRBP
DSBXDLSI
ESDI
2.9
1<M)2(C)3.(D)4.?)5(A)64L)?<K)84J)
9XF)10(H)11(G)12?13.(D1440)15.(N)
IBM-PC匯編語言程序設(shè)計(第二版)課后習(xí)題答案(清華大學(xué)出版社)(沈美
明,溫冬蟬著)
第3章答案
IBM-PC匯編語言程序設(shè)計(第二版)課后習(xí)題答案(清華大學(xué)出版社)(沈美
明,溫冬蟬著)第三章答案1-
lo
?立?
1)即址
沒有
(2)直接尋址
7237H
(3)使用BX的寄存器尋址沒
有
(4)使用BX的間接尋址
637DH
(5)使用BX的寄存器相對尋址
0D5F0H
(6)基址變址尋址
8E18H
(7)相對基址變址
004FH
2O根據(jù)下列要求,寫出相應(yīng)的匯編指令。
(1)ADDDX,BX
(2)ADDAL,fBX][SI]
(3)ADDrBX][0B2H],CX
(4)MOVAX,2A59HADD[0524H],AX
(5)ADDAL,0B5H
3o
(1)寄存器間接尋址
MOVBX,OFFSET[BLOCK][OAH]
MOVDX,[BX]
(2)寄存器相對尋址
MOVSI,OAH
MOVDX,[BLOCK][SI]
⑶基址變址尋址
MOVBX,BLOCK
MOVSI,OAH
MOVDX,[BX][SI]
沒人來看,還是要寫??
4?,F(xiàn)有(DS)
=2000H,(BX)=0100H,(SI)=0002H,(20100)=12H,(20101)=34H,(20102)=56H,(20103)
=78H,(21200)=2AH,(20201)=4CH,(21202)=B7H,(21203)=65H,試說明下歹U各條指
令執(zhí)行完后,AX寄存器的內(nèi)容。
(1)MOVAXJ200H
1200H
(2)MOVAX,BX
01OOH
(3)MOVAX,[1200]
4C2AH注意,是字單元??!
(4)MOVAXJBX]
3412H同上
(5)MOV1100[BX]
4C2AH
(6)MOVAX,[BX][SI]
7856H
(7)MOVAX,1100[BX][SI]
65B7H
5o
(1)7CD9H(2)1200H(3)6319H
6OMOVBX,2000H
LESDI,[BX]
MOVAX,ES:DI
7o轉(zhuǎn)向地址OBJ的值分別為:(1)064DH(2)0691H(3)05E0H
注意有符號數(shù)的符號位一
8o(1)MOVAX,0ABH立即數(shù)尋址
無物理地址
(2)MOVAX,BX寄存器尋址
同上
(3)MOVAXJ100]直接尋址
201OOH
(4)MOVAX,VAL直接尋址
20050H
(5)MOVAX,[BX]寄存器間接尋址
201OOH
(6)MOVAX,ES:[BX]直接尋址
21100H
(7)MOVAX,[BP]寄存器間接尋址
2001OH
(8)MOVAX,[SI]同上
200A0H
(9)MOVAX,[BX+10]寄存器相對尋址
20110H
(10)MOVAX,VAL[BX]同上
20150H
(11)MOVAX,[BX][SI]基址變址尋址
201A0H
(12)MOVAX,VAL[BX][SI]相對基相變址尋址
201F0H
9o
(1)的指令:MOVAX,[BX][0CH]MOV
ZREO,AX
(2)的指令:MOVAX,ARRAY[BX]MOV
ZREO,AX
10oMOVAX,TABLE是把符號地址TABLE里的內(nèi)容送到AX里,指
令執(zhí)行完后,(AX)=1234H
LEAAX,TABLE是把符號地址TABLE的有效地址(這里是
偏移量)送到指定寄存器AX里,指
令執(zhí)行完后,(AX)=0032H
llo執(zhí)行完指令后,(AX)=1EOOH
12oLEAAX,CSTRING
MOVDL,AX
MOVDH,[AX+6]
13。這個,,圖,很麻煩了,所以就不畫了一大家可以看一下課本上P51-P53,
很清楚,看完了這道匙也會了???
140LESBXJ2000]
MOVAX,ES:[BX]
注意:一開始我寫的是:MOVAX,ES:[8000H],后來看到題目里要求寫兩
條指令,所以一條就不行了,就要畫蛇添足???
15運算結(jié)果
SF,ZF,CF,OF各位的值(從左至右依次往下?)
(1)74D4H
0000
(2)A5C1H
1001
(3)4240H
0010
(4)0000H
0110
16o接上表?
(1)5D14
0000
⑵A870
1001
(3)D870
1000
(4)34E4
0010
17o
(l).MOVAX,Z;把Z送到AX
SUBAX,X;Z-X
ADDAX,W;W+(Z-X)
MOVZ,AX;結(jié)果保存在z中
(2).MOVAX,R;R送到AX中
ADDAX,9;R+9
MOVBX,X;X送到BX中
ADDBX,6;X+6
ADDAX,BX;(R+9)+(X+6),結(jié)果保存在AX中
MOVBX,W;W送到BX中
SUBBX,AX;W-(R+9)-(X+6),連續(xù)減去兩個數(shù),相當(dāng)于減去這兩
個數(shù)的和??
MOVZ,BX;最終結(jié)果送到Z中
(3)
MOVAX,W;把W送到AX
IMULX;W*X注意:低十六位保
存在AX里,高十六位保存在DX里
MOVBX,Y;把丫送到BX里
ADDBX,6;Y+6
IDIVBX;(W*X)/(Y+6)注意:商保存
在AX里,余數(shù)保存在DX里
MOVZ,AX;把商送到Z中,
MOVR,DX;把余數(shù)送到R中
(4)
MOVAX,W;把W送到AX中
SUBAX,X;w-x
CWD;把AX中的十六位帶符號數(shù)擴展成為32
位,低十六位保存在AX中,高十六位保
;在口*中
MOVBX,5;把5送到BX中
IDIVBX;(W-X)/5被除數(shù)為32位,除
數(shù)為16位商為16位
IMULY;上一步結(jié)果再乖以Y,積為32位
MOVBX,2;把2送到BX中
IMULBX;上?步乘法所得的積再乘以2,各
為64位
MOVZ,EAX;把結(jié)果中低32位放入Z雙字單元中
MOV[Z+4],EDX;把結(jié)果中高32位放入Z+4雙字單元中
18o
指令本條指令執(zhí)行完后AX的內(nèi)容
執(zhí)行完后CF,SF,ZF的值
MOVAX,1234H1234H
000
MOVCL,41234H
000
ROLAX,CL2341H
100
DECAX2340H
100
MOVCX,42340H
100
MULex8918H
000
INT20H
程序結(jié)束后,(AX)=8918H(DX)=OOOOH
19o
指令執(zhí)行完后AX的內(nèi)容
執(zhí)行完后CF,SF,ZF和OF的值
MOVAX,00
0010
DECAXFFFFH
0100
ADDAX,7FFFH7FFEH
0000
ADDAX,28000H
0101
NOTAX7FFFH
0101
SUBAX,0FFFFH8000H
1101
ADDAX,8000H0000H
1011
SUBAX,1FFFFH
1101
ANDAX,58D1H58D1H
0000
SALAX,1B1A2H
0101
SARAX,1D8D1H
0100
NEGAX272FH
1000
RORAX,19397H
1001
20o
(1)MOVAX,DATAX
ADDDATAY,AX
(2)MOVAX,DATAX
ADDDATAY,AX
MOVAX,[DATAX+2]
ADD[DATAY+2],AX
(3)本書且指令的作用是:BX<一一[DATAX]+[DATAY]+[1](CF的值)
位加法?
(4)MOVAX,DATAX
MULDATAY;結(jié)果的高十六位保存在DX裹,低
十六位保存在AX?
(5)MOVAX,DATAX
MOVDX,[DATAX+2]
MULDWORDDATAY;結(jié)果的高三十二位保存在EDX裹,
低三十二位保存在EAX?
;造凄所用的
DWORD?^一屬性操作符,在第四章曾■阜到??
(6)MOVAX,DATAX
DIV17H;結(jié)果商保存在AL中,
余數(shù)在AH中
(7)MOVAX,DATAX
CDW
DIVDATAY
21oNEGDX
NEGAX
SBBDX,0
22o
MOVAX,A;把曼字房數(shù)的低字放到AX中
MOVDX,[A+2];把曼字?良數(shù)的高字放到DX中
TESTDX,8000H;冽信式曼字房數(shù)的符號虎
JZRIGHT;如果是非負(fù)一,即直接保存
NEGDX;如果是負(fù)矍攵,即求衲
NEGAX
SBBDX,0
RIGHT:MOVB,AX
MOV[B+2],DX
23o每脩指令罩褐軌行完彳爰的結(jié)果依次卷:
(1)9AH(2)61H(3)0FBH(4)1CH(5)0(6)0E3H
24o軌行指令序列彳爰,BX的內(nèi)容卷:0DAH
25o
(1)把53D乘以2的程序:
MOVAX,35H;53D=35H
SHLAX,1
(2)把53除以2的程序:
MOVAX,35H
SHRAX,1
其他的同理一
26o道段程序完成的功能是:把DX:AX中的曼字?jǐn)?shù)獴左移4位(相常於乘以
16D)
27o各修指令覃褐軌行彳爰,DX的值依次卷:
(1)5CH(2)17H(3)05C8H(4)72H(5)2017H(6)0CDH(7)
0172H(8)05CCH
(9)0DCH
28o言亥程序段孰行完彳爰,BX寄存器的內(nèi)容是:C02DH
29o(1)從左到右把CONMAE中的字符串偉送到PRLINE的程序?qū)崿F(xiàn):
LEASLCONAME;把CONAME中第一個字節(jié)的偏移地址送到SI中
LEADLPRLINE;把PRLINE中第一個字節(jié)的偏移地址送到DI
中
MOVCX,20;把重復(fù)次數(shù)放到ex里
CLD;讓SIDI從低地址指向高地址(即從左到
右傳送)
REPMOVSB;傳送
(2)從右到左把CONMAE中的字符串傳送到PRLINE中的程序?qū)崿F(xiàn):
LEASI,CONAME
LEADLPRLINE
MOVCX,20
STD;和上面唯一不同的就是這次是從右到
左,所以要從高地址批向低地址
REPMOVSB
(3)把CONAME中的第三和第四他|字WT裝入AX的程序^說:
LEASI,[CONAME+3]
LODSW
(4)把AX寄存器的內(nèi)容存入彳他PRLINE+5I鼎始的字前中的程序
LEADI,[PRLINE+5]
STOSW
(5)檢查CONAME字符串中有趣空格字符,如有把它俾送幺合BH寄存器的程
序土拈
LEAD!,CONAME;把CONAME中第一?他字符偏移地
址放入DI中
MOVCX,20;把重^次數(shù)放到CX中
MOVAL,20H;把空格符的ASCII值放入AL
中
CLD;彳走低到高
REPNESCASB;比敕
MOVBH,[DI-1]R;把檢查到的空格符送到BH中
30o
MOVCX,12H;把重禊次矍攵放到CX中。it裹
用十六誕制表示
MOVSL0;初始化SI
MOVAX,26H;把&字符的ASCII值放入AX
CHECK:CMPAX,STRINGfSI];依次查找
INCSI
LOOPNECHECK;找到了就退出
MOVAX,20H;把空格符的ASCH值勤放
入AX中
MOVSTRING[SI-1],AX;用空格符代替&
31o(1)用空格符清除PRINTLINE域的程序?qū)崿F(xiàn):
MOVAL,20H
LEADI,PRINT_LINE
MOVCX,132
CLD
REPSTOSB
(2)在STUDENT_ADDR中查找第一個‘_'的程序?qū)崿F(xiàn):
MOVAX,2DH;把“一”的
ASCII值放入AX
MOVSL0;初始化
SI
MOVCX,9;把重禊次
數(shù)放入ex中
;依次檢查STUDENT-ADDR中的字符是否卷找到第一個停下來
CHECK:CMPAX,STUDENT_ADDR[SI];
INCSI
LOOPNZCHECK
(3)在STUDENT_ADDR中查找最后一個”—“的程序?qū)崿F(xiàn):
;和第二題不同的就是道次是彳他右到左查前,所以SI的初始化卷9
MOVAX,2DH
MOVSI,9
MOVCX,9
CHECK:CMPAX,STUDENT_ADDR[SI]
DECSI
LOOPNZCHECK
(4)程序
MOVAL,20H;把空格符的ASCII值放入AL
中
LEADI,STUDENT_NAME;把STUDENT_NAME中第一個字符偏
移地址放到DI中
MOVCX,30;把重復(fù)次數(shù)放到CX中
CLD:讓DI從低位移到高位
REPZSCASB;如果有不是空格符的,就退出
JZSTORE:如果全是空格符,就轉(zhuǎn)到
STORE中
;用*代替空格
STORE:MOVAL2AH
MOVCX,30
STD;注意,這里是把前面從低到高移動
的DI再從高到低移上去~~
REPSTOSB
⑸程序?qū)崿F(xiàn):
;把STUDENT_NAME移到PRINTJJNE的前30個字節(jié)中
LEASLSTUDENT_NAME
LEADLPRINT_LINE
MOVCX,30
CLD
REPMOVSB
;把STUDENT_ADDR移至PRINT_LINE的后9個字節(jié)中
LEASI,[STUDENT.ADDR+9]
LEADL[PRINT_LINE+132]
MOVCX,9
STD
REPMOVSB
32o程序?qū)崿F(xiàn):
ooo
LEASLOLDS
LEADLNEWS
MOVCX,5
REPZCMPSB
JNZNEW_LESS
ooo
33o
(1)CMPDX,CX
JAEXCEED
(2)CMPBX,AX
JGEXCEED
(3)CMPCX,0
JZZERO
(4)CMPBX,AX
JOOVERFLOW
(5)CMPBX,AX
JLEEQ_SMA
(6)CMPDX,CX
JBEEQ_CX
34o(1)跳轉(zhuǎn)到:LI
(2)跳轉(zhuǎn)到LI
(3)跳轉(zhuǎn)到L2
(4)跳轉(zhuǎn)到L5
(5)跳轉(zhuǎn)到L5
35o
(1)可以引起轉(zhuǎn)移到LI的指令有:NB,BE,NL,LE
(2)可以引起轉(zhuǎn)移到L1的指令有:同上
(3)可以引起轉(zhuǎn)移到L1的指令有:B,BE,L,LE
(4)可以引起轉(zhuǎn)移到L1的指令有:NB,NBE,NL,NLE
(5)可以引起轉(zhuǎn)移到L1的指令有:同上
(6)可以引起轉(zhuǎn)移到L1的指令有:同(3)
(7)可以引起轉(zhuǎn)移到L1的指令有:同上
36o
370程序流程圖就不畫了,呵呵,程序如下~~
MOVAL,STAUS[SI];把要測試的字節(jié)放到AL中
ANDAL,2AH;把第一,三,五位為一其他位為0
的數(shù)-2AH,與這個字節(jié)比較,結(jié)果
;放到AL中
JZROUTINE_4;如果結(jié)果為0,則三位都為0
XORAL,2AH;前面相與的結(jié)果再與2AH異或
JZROUTINE_1;如果結(jié)果為0,則三位都為1
BSFBL,AL
BSRBL,AL
CMPBL,CL
;如果向前和向后測試后,第一個1的位置相同,說明只有…個1,則異或運算
前有AL中有兩個1
JEROUTINE2
ROUTINE.1
注:本題還有其他解法,請大家自己試試??
38o(1)當(dāng)括號內(nèi)是:LOOP時,循環(huán)四次,程序結(jié)束后
(AX)=05(BX)=16(CX)=0(DX)=0
(2)當(dāng)括號內(nèi)是:LOOPE時,不循環(huán),程序結(jié)束后
(AX)=02(BX)=04(CX)=03(DX)=02
(3)當(dāng)括號內(nèi)是:LOOPNE時:循環(huán)三次,程序結(jié)束后
(AX)=04(BX)=11(CX)=01(DX)=0
類別:ibm-pc匯編語言程序設(shè)計(第二版)課后習(xí)題答案I評論(7)I瀏覽(5855)
IBM-PC匯編語言程序設(shè)計(第二版)課后習(xí)題答案(清華大學(xué)出版社)(沈美
明,溫冬蟬著)第三章答案39—522006-11-0223:02
39o圖,就不畫了,呵呵??自己看一下課本,P101—
40.o(1)00003100H(2)5100H(3)7100H
41o(1)目的地址:2004H內(nèi)容依次為:56HF4H23H98H
(2)目的地址:384CH內(nèi)容依次為:91H34HF2H01H
(3)目的地址:寄存器,無物理地址?內(nèi)容依次為:92H6DH
A2H4CH
42o(1)PUSHAX
(SP)<——(SP)-2
(SP+1)<-一一(AH)(SP)<——(AL)
(2)POPESI
(ESI)<------((ESP)+3,(ESP)+2,(ESP)+1,(ESP))
(ESP)<------(ESP)+4
(3)PUSH[BX]
(SP)<——(SP)-2
(SP+1)<-一一([BX+1])(SP)<——([BX])
(4)PUSHAD
(ESP)<------(EAX)
(ESP-4)<-------(ECX)
(ESP-8)<-------(EDX)
(ESP-12)<-------(EBX)
(ESP-16)<——(ESP);這里指的是指令執(zhí)行前的ESP
(ESP-20)<-------(EBP)
(ESP-24)<-------(ESI)
(ESP-28)<-------(EDI)
(ESP)<-------(ESP)-32
(5)POPDS
(DS)<-―一((SP)+1,(SP))
(SP)<——(SP)+2
(6)PUSH4
(SP)<------(SP)-2
(SP+1)<-——0
(SP)<——4
43。(1)2CEFF93H(2)24B76A0H
(3)9090804H(4)6F13ADH
44o(1)OFFFFFFFCH(2)OFFFFFFF8H
(3)00000007H(4)00000099H
45o(EAX)=0(EBX)=25d
46o(AX)=3d(DX)=7d
47oADDECX,EDX
ADDECX,ESI
MOVEDI,ECX
48oIMULBX,DX,100H執(zhí)行的操作是:
(BX)<------(DX)*100H
49o程序?qū)崿F(xiàn):
MOVAL,BL
CBW
IDIVCL
IMUL2
MOVDX,AX
50o
JMPDI是直接跳轉(zhuǎn),執(zhí)行的操作是:(IP)<--(IP)+(DI)
JMP[DI]是間接跳轉(zhuǎn),執(zhí)行的操作是:(IP)<——(IP)+([DI])跳轉(zhuǎn)到DI中所
指向的內(nèi)存單元中的指令地址?
51o假設(shè)數(shù)組名為NUMBERS,程序如下?
MOVBX,0;后面用到?
MOVCX,100H;把循環(huán)次數(shù)放入CX
MOVAL,42H
MOVSL0;初始化SI
;CHECK用來實現(xiàn)查找功能?
CHECK:CMPAL,NUMBERS[SI]
INCSI
JBSTORE1;大于42H的數(shù)的個數(shù)存入UP
JASTORE2;小于42H的的數(shù)的個數(shù)存入DOWN中?
LOOPCHECK;相等繼續(xù)循環(huán)?
STORE1INCBL;找到一個大于42的數(shù),BL值增加1?
MOVUP,BL
LOOPCHECK
STORE2INCBH
MOVDOWN,BH
LOOPCHECK
52o圖,也不用畫了一呵呵?好了,本章結(jié)束
第4章答案
IBM-PC匯編語言程序設(shè)計(第二版)課后習(xí)題答案(清華大學(xué)出版社)(沈美
明,溫冬蟬著)第四章答案2006-11-0421:591。指令下列指令的錯誤
(1)MOVAH,BX源操作數(shù)與目的操作數(shù)長度不相同?
(2)MOV[BX],[SI]這是兩個內(nèi)存單元在傳遞數(shù)據(jù),而這在匯編語言中
是不允許的---
⑶MOVAX,fSI][DI]不能用兩個變址連用,其中一個應(yīng)為基址?
(4)MOVMYDAT[BX][SI],ES:AX同(2)
(5)MOVBYTEPTR[BX],1000必須有一個為寄存器
(6)MOVBX,OFFSETMYDAT[SI]OFFSET不能與復(fù)雜操作數(shù)相連?
(7)MOVCS,AX不能對CS賦值?
(8)MOVECX,AX操作數(shù)類型不同?
2o(1)合法(2)非法(3)非法(4)非法
3。(1)非法,操作數(shù)類型不同
(2)合法
(3)非法,不允許兩個內(nèi)存單元直接傳遞數(shù)據(jù),你把人家CPU放哪了?
|lnj
(4)合法?
(5)合法?
(6)合法
(7)非法?,必須有一個寄存器一把CPU放哪了???
(8)非法,兩個內(nèi)存單元地址相加沒有意義?
(9)合法
(10)非法,同(3)
4。(1)兩內(nèi)存單元傳遞數(shù)據(jù)
(2)操作數(shù)類型不同
(3)跳轉(zhuǎn)指令只能跳轉(zhuǎn)到符號地址
(4)轉(zhuǎn)移指令后不能為變量,只能為標(biāo)號
(5)格式不對,應(yīng)為NEARPTR…
5o圖,就不畫了??
6O(1)DW5150H
(2)MOVAX,5150H
MOVADDRESS,AX
等,寫出幾個就可以??
7ODATASGSEGMENT
FLD1BDB'personalcomputer'
FLD2BDB10DUP(32)
FLD3BDB20H
FLD4BDB01011001B
FLD5BDB,32654,
FLD6BDB10DUP(0)
FLD7BDBPART1',DUP20(?),'PART2',DUP50(?);PART3',DUP14⑺
FLD1WDWOFFFOH
FLD2WDW01011001B
FLD3WDWFLD7B
FLD4WDW5,6,7,8,9
FLD5WDW5DUP(0)
FLD6WDW(FLD6W-FLD1W)-(FLD7B-FLD1B)
8OPLENTH的值為22,GE表示該數(shù)據(jù)段的長度?
9oL的值為7
10o(1)MOVAX,OFFSETLNAME
(2)MOVSI,WORDPTRCODE_LIST
(3)CODE_LENGHTEQU$-CODE_LIST
Ho代碼如下:
DATA_SEGSEGMENT
DB5
DATA_LISTDW0FFFFH,0,2,5,4,5DUP(?)
DATA_SEGENDS
CODE_SEGSEGMENT
ASSUMECS:CODE_SEG,DS:DATA_SEG
MOVAX,5
MOVMAX,AX
MOVAX,0FFFFH
MOVMIN,AX
CODE_SEGENDS
12o(1)10025
(2)19
(3)2548
(4)3
(5)103
(6)OFFFFH
(7)1
(8)3
13o分別匯編成為:
MOVAX,OAH
MOVBL,OAH
MOVCL,1
14o(1)(AX)=1(2)(AX)=2(3)(CX)=14H(4)(DX)=32H
(5)(CX)=1]
15o(1)操作符錯誤改為:DATA_SEGSEGMENT
⑵缺少段名在前面加個段名
(3)引用應(yīng)該從;開始把那個“/”改成“;”
(4)結(jié)構(gòu)混亂改為:
MAIN_PROCPROCFAR
MAIN_PROCENDP
END
16o程序框架如下:
DATA_SEGSEGMENT;定羲數(shù)撼段
ORG0E000H;ai下一字
fi地址卷0E000H
FIRST_TYPEEQUTHISWORD;建立一他輿下一存儲罩元有相同
段地址和偏移地址的操作數(shù)
DATA_GROUPDB100DUP(?);品合DATA_GROUP分配100
他I字箭的空^
DATA_SEGENDS;數(shù)獴段結(jié)束
STACK_SEGSEGMENT;定羲堆梭段
ALIGN16;下
一字^彳儉小段首地址^始
STACKDB100DUP(?);卷堆慢分配空IW
STACK_SEGENDS
CODE_SEGSEGMENT
ASSUMECS:CODE_SEG,DS:DATA_SEG,SS:STACK__SEG
ORG1000H;下
僚指令的第一他1字筋淡1000H1荊始
START:MOVAX,DATA_SEG
MOVDS,AX
MOVAX,STACK_SEG
MOVSS,AX
CODE_SEGENDS
ENDSTART;幺吉束?
17o程序如下:
D_SEGSEGMENT;數(shù)據(jù)段定義
AUGENDDD99251
D_SEGENDS
E_SEGSEGMENT;附加段定義
ADDENDDD-15926
E_SEGENDS
C_SEGSEGMENT;代碼段定義
ASSUMECS:C_SEG,DS:D_SEG,ES:E_SEG
START:MOVAX,D_SEG
MOVDS,AX
MOVAX,E_SEG
MOVES,AX
MOVEAX,DS:AUGEND
ADDEAX,ES:ADDEND
MOVDS:SUM,EAX
C_SEGENDS
ENDSTART;結(jié)束
18o
19o需要加上PTR偽操作的有:(2)(3)(4)
第5章答案
IBM-PC匯編語言程序設(shè)計(第二版)課后習(xí)題答案(清華大學(xué)出版社)(沈美
明,溫冬蟬著)第五章答案
這當(dāng)然不是標(biāo)準(zhǔn)答案,希望對大家有用處。
5.1試編寫?個匯編語言程序,要求對鍵盤輸入的小寫字母用大寫字母顯示出來
.modelsmall
.stack100H
.code
mainprocfar
Start:
pushdx
movax,0
pushax
movah,01H
int21H
cmpal,61H
jllopl
cmpal,7BH
jgelopl
subal,20H
movdl,al
lopl:movah,2
int21H
ret
Endstart
5.2編寫一個程序,從鍵盤接受一個小寫字母,然后找出它的前導(dǎo)字符和后續(xù)字
符,再按順序顯示這三個字符.
.modelsmall
.386
.code
MAINPROCFAR
start:
pushds
subax,ax
pushax
input:
movah,7H
int21H
cmpe:
cmpal,20H
JEexit
cmpal,61H
JLinput
cmpal,7AH
JGinput
print:
subal,01H
movdl,al
movah,02H
int21H
addal,01H
movdl,al
movah,02H
int21H
addal,01H
movdl,al
movah,02H
int21H
;輸出換行回車
movdl,OAH
movah,02H
int21H
jmpinput
exit:
ret
MAINENDP
ENDstart
5.3將AX寄存器中的16位數(shù)分成4組,每組4位,然后把這四組數(shù)分別放在
AL、BL、CL、DL中。
.modelsmall
.data
xDB4dup(?)
.stack100H
.code
MAINPROCFAR
start:
pushds
andax,OOH
pushax
movax,1234H
movcx,04H
movsi,OOH
lop:
pushex
movcl,04H
rolax,cl
pushax
andal,0FH
movBYTEPTRx[si],al
popax
popex
addsi,2
Looplop
moval,[X]
movblJX+21
movcl,[X+4]
movdl,[X+6]
print:
movah,02H
int21H
movdl,al
movah,02H
int21H
movdl,bl
movah,02H
int21H
movdl,cl
movah,02H
int21H
exit:
ret
MAINENDP
ENDstart
5.4編寫一個程序,要求比較兩個字符串STRING1和STRING2所含字符是否相
同,若相同則顯示"MATCH",若不同在顯示:"NOMATCH"。
.modelsmall
.data
STRING1DB'Imuststudyhard'
STRING2DB'Imuststudyhard'
XDB'MATCH.$'
YDBNOMATCH.$'
.stack100H
.code
mainprocfar
Start:
pushdx
movax,0
pushax
movax,@data
movds,ax
moves,ax
leasi,STRING1
leadi,STRING2
cld
movcx,(string2-stringl)/typeSTRING2
ret
Endstart
5.5編寫??個程序,要求能從鍵盤接收一個個位數(shù)N,然后響鈴N次,(響鈴的
ASCII為07)。
這題比較有意思,呵呵。
modelsmall
.code
mainprocfar
start:
pushds
subax,ax
pushax
input:
movah,01H
int21H
cmpal,20H
jeexit
cmpal,30H
jleinput
cmpal,3AH
jgeinput
subal,30H
movex,ax
andcx,OFFH
lop:
movdl,07H
movah,2H
int21H
looplop
jmpinput
exit:
ret
mainendp
endstart
5.6編寫程序,將一個包含有20個數(shù)據(jù)的數(shù)組M分成兩個數(shù)組:正數(shù)數(shù)組和負(fù)
數(shù)數(shù)組N,并分別把這兩個數(shù)組中的數(shù)據(jù)個數(shù)顯示出來。
.modelsmall
.386
.data
MDB1,2,3,4,5,6,7,8,9,10,-1,-2,-3,-4,-5,-6,-7,-8,-9,-10
PDB20dup(?)
NDB20dup(?)
.code
MAINPROCFAR
start:
PUSHds
ANDax,0
PUSHax
MOVax,@data
movds,ax
MOVbx,0
MOVsi,0
MOVdi,0
MOVcx,20D
cmpe:
CMPM[bx],0
JLifLow
hight:
MOVal,byteptrM[bx]
MOVbyteptrP[si],al
incsi
JMPcommonContrl
ifLow:
MOVal,byteptrM[bx]
MOVbyteptrN[di],al
INCdi
commonContrl:
INCbx
loopcmpe
movax,si
callshowNumber
callprintCR
movax,di
callshowNumber
exit:ret
MAINENDP
;;;;;;;;;;;;;;;;;注意,ShowNumber這個子過程有問題,請自行修改
showNumberPROCNEAR
covernum:
DAA
MOVdx,ax
MOVcl,2H
show:
ROLdl,4H
pushdx
ANDdl,OfH
ADDdl,30H
MOVah,02H
int21H
popdx
loopshow
ret
showNumberENDP
,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,
printCRPROCNEAR
movdl,0aH
movah,02H
int21H
movdl,0dH
movah,02H
int21H
ret
printCRENDP
endstart
5.7編制一個匯編語言程序,求出首地址為DATA的100D字?jǐn)?shù)組中的最小偶數(shù),
并把它放在AX中。
此題根據(jù)題意要求應(yīng)該使用完整匯編格式,因為精簡格式也使用DATA....
dataaresegment
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026年大件垃圾污染易發(fā)區(qū)保護保險合同中
- 熱力生產(chǎn)調(diào)度管理方案
- 燃氣管道標(biāo)識與警示方案
- 安全員A證考試考前沖刺訓(xùn)練試卷及參考答案詳解【a卷】
- 安全員A證考試從業(yè)資格考試真題含答案詳解【研優(yōu)卷】
- 安全員A證考試考試綜合練習(xí)附答案詳解(奪分金卷)
- 2025年國際貨運代理專業(yè)技能大賽試卷及答案
- 安全員A證考試從業(yè)資格考試真題附答案詳解(突破訓(xùn)練)
- 安全員A證考試考前沖刺練習(xí)附參考答案詳解(完整版)
- 2025年特崗教師測試卷【完整版】附答案詳解
- 常用機床電氣檢修(第二版)課件:M7475B 型立軸圓臺平面磨床電氣檢修
- 城市道路智慧路燈項目投標(biāo)方案(技術(shù)標(biāo))
- 校車購買合同協(xié)議書
- 歷史課堂教學(xué)改進的幾點措施
- 1500V儲能系統(tǒng)全場景解決方案與典型案例分享
- 公路路面煤矸石基層應(yīng)用技術(shù)規(guī)范(DB15-T 3122-2023)
- 大學(xué)計算機基礎(chǔ)操作題(一)
- AQ-T7009-2013 機械制造企業(yè)安全生產(chǎn)標(biāo)準(zhǔn)化規(guī)范
- 小學(xué)美術(shù)與心理健康的融合滲透
- 2023年上海鐵路局人員招聘筆試題庫含答案解析
- 馬鞍山經(jīng)濟技術(shù)開發(fā)區(qū)建設(shè)投資有限公司馬鞍山城鎮(zhèn)南部污水處理廠擴建工程項目環(huán)境影響報告書
評論
0/150
提交評論