王爽《匯編語言》第二版習題答案_第1頁
王爽《匯編語言》第二版習題答案_第2頁
王爽《匯編語言》第二版習題答案_第3頁
王爽《匯編語言》第二版習題答案_第4頁
王爽《匯編語言》第二版習題答案_第5頁
已閱讀5頁,還剩180頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

《匯編語言》第二版習題答

目錄

1.前言..........................................................................7

2.第1章基礎(chǔ)知識..............................................................8

2.1檢測點1.1.....................................................................................................................8

3.第2章寄存器................................................................9

3.1檢測點2.1(1)................................................................................................................9

3.2檢測點2.1(2)..............................................................................................................11

3.3檢測點2.2(1).............................................................................................................12

3.4檢測點2.2(2)..............................................................................................................13

3.5檢測點2.3...................................................................................................................14

3.6實驗一(1)....................................................................................................................14

3.7實驗一(2)....................................................................................................................17

3.8實驗一(3)....................................................................................................................18

4.第3章寄存器(內(nèi)存訪問)...................................................19

4.1檢測點3.1(1)..............................................................................................................19

4.2檢測點3.1(2).............................................................................................................21

4.3檢測點3.2(1).............................................................................................................22

4.4檢測點3.2(2).............................................................................................................23

4.5實驗2(1).....................................................................................................................23

4.6實驗2(2).....................................................................................................................26

5.第4章第一個程序...........................................................27

1

4X編語d第二案

5.1實驗3(1).....................................................................................................................27

5.2實驗3(2).....................................................................................................................30

5.3實驗3(3).....................................................................................................................32

6.第5章[BX]和loop指令......................................................32

6.1實驗4(1).....................................................................................................................32

6.2實驗4(2).....................................................................................................................34

6.3實驗4(3).....................................................................................................................35

7.第6章包含多個段的程序....................................................38

7.1檢測點6.1(1)..............................................................................................................38

7.2檢測點6.1(2).............................................................................................................39

7.3實驗5(1).....................................................................................................................40

7.4實驗5(2).....................................................................................................................42

7.5實驗5(3).....................................................................................................................43

7.6實驗5(4).....................................................................................................................45

7.7實驗5(5).....................................................................................................................45

7.8實驗5(6).....................................................................................................................48

8.第7章更靈活的定位內(nèi)存地址的方法..........................................49

8.1實驗6(1).....................................................................................................................49

8.2實驗6(2).....................................................................................................................49

9.第8章數(shù)據(jù)處理的兩個基本問題...............................................50

9.1實驗7..........................................................................................................................50

10.第9章轉(zhuǎn)移指令的原理......................................................54

2

10.1檢測點9.1(1)..........................................................................................................54

10.2檢測點9.1(2).........................................................................................................55

10.3檢測點9.1(3).........................................................................................................57

10.4檢測點9.2.................................................................................................................60

10.5檢測點9.3.................................................................................................................61

10.6實驗8.......................................................................................................................62

10.7實驗9.......................................................................................................................63

11.第10章CALL和RET指令..................................................67

11.1檢測10.1...................................................................................................................67

11.2檢測點10.2..............................................................................................................68

11.3檢測點10.3..............................................................................................................69

11.4檢測點10.4..............................................................................................................70

11.5檢測點10.5(1)........................................................................................................70

11.6檢測點10.5(2)........................................................................................................72

11.7課程設(shè)計一.............................................................74

11.8實驗10⑴.................................................................................................................79

11.9實驗10⑵.................................................................................................................81

11.10實驗10⑶..............................................................................................................84

11.11實驗10(4)...............................................................................................................84

12.第11章標志寄存器.........................................................88

12.1檢測點11.1...............................................................................................................88

12.2檢測點11.2..............................................................................................................89

3

-------------------------------------------------------------------------------------------------------------------------------

12.3檢測點11.3(1).........................................................................................................91

12.4檢測點11.3(2).........................................................................................................92

12.5檢測點11.4...............................................................................................................93

12.6實驗11.....................................................................................................................95

13.第12章內(nèi)中斷.............................................................98

13.1檢測點12.1(1).........................................................................................................98

13.2檢測點12.1(2).........................................................................................................98

13.3實驗12.....................................................................................................................99

14.第13章int指令...........................................................100

14.1檢測點13.1(1)........................................................................................................100

14.2檢測點13.1(2).......................................................................................................101

14.3檢測點13.2(1).......................................................................................................103

14.4檢測點13.2(2).......................................................................................................103

14.5實驗13⑴...............................................................................................................103

14.6實驗13⑵...............................................................................................................105

14.7實驗13⑶...............................................................................................................106

15.第14章端口..............................................................108

15.1檢測點14.1(1)........................................................................................................108

15.2檢測點14.1(2).......................................................................................................108

15.3檢測點14.2.............................................................................................................109

15.4實驗14...................................................................................................................110

16.第15章外中斷............................................................114

4

-------------------------------------------------------------------------------------------------------------------------------

16.1檢測點15.1⑴.....................................................................................................114

16.2檢測點15.1(2).....................................................................................................114

16.3實驗15.................................................................................................................118

17.第16章直接定址表........................................................120

17.1檢測點16.1.............................................................................................................120

17.2檢測點16.2............................................................................................................122

17.3實驗16...................................................................................................................123

18.第17章使用BIOS進行鍵盤輸入和磁盤讀寫.................................131

18.117.3字符串的輸入......................................................131

18.2檢測點17.1............................................................................................................135

18.3實驗17...................................................................................................................136

18.4課程設(shè)計2..............................................................................................................138

19.第18章綜合研究..........................................................153

19.1研究試驗1搭建一個精簡的C語言開發(fā)環(huán)境..............................153

19.2研究實驗2使用寄存器.................................................153

19.3研究試驗3使用內(nèi)存空間...............................................159

20.部分章節(jié)筆記..............................................................165

20.1第11章標志寄存器....................................................165

20.2第12章內(nèi)中斷.......................................................169

20.3第14章端口..........................................................171

20.4第15章外中斷.......................................................173

20.5第16章直接定址表...................................................176

5

------------------------------------------------------------------------------------

20.6第17章使用BIOS進行鍵盤輸入和磁盤讀寫.............................177

21.附注........................................................................181

21.1《匯編語言(第2版)》勘誤...............................................181

21.2匯編測試題目(部分)....................................................183

21.3匯編測試答案(部分)....................................................183

6

4X編語d第二累

1.前言

教材:《匯編語言》(2008年4月第2版),王爽著,清華大學出版社。

長期以來,匯編語言被認為是一門枯燥難學的課程,但王爽老師的著作《匯編語言》解決了這個問題。

本人僅將自己在學習此書時所做的答案及一些個人筆記進行了整理并編輯成集,方便日后查閱。

后因朋友要求,發(fā)于網(wǎng)上共享。

由于本人水平有限,制作倉促,不能保證解析完全正確。

如果你在對照的過程中,發(fā)現(xiàn)了錯誤的地方,可以寫信告知本人,在此先表示感謝。

郵箱:gray_always@qq.com;

QQ群:100354217(群主不友善,慎入)

如有其它疑問,可到專門為《匯編語言》讀者開設(shè)的論壇中尋求幫助。

網(wǎng)站地址:http:〃www.asmedu.net/bbs/forum.jsp

制作者:灰色依然

制作日期:2008年7月

如需轉(zhuǎn)載,請注明來源和出處,謝謝。

7

4X編語d第二案

2.第1章基礎(chǔ)知識

2.1檢測點1.1

檢測點1.1

(1)1個CPU的尋址能力為8KB,那么它的地址總線的寬度為」工位。

(2)1KB的存儲器有1024個存儲單元,存儲單元的編號從0到1023。

(3)1KB的存儲器可以存儲可92(2-3)個bit,1024個Byte。

(4)1GB是1073741824(2'30)個Byte、1MB是1048576(2.20)個Byte、1KB是1024(2~10)個Byte。

(5)8080、8088、80296、80386的地址總線寬度分別為16根、20根、24根、32根,則它們的尋址能力分

別為:且.(KBXJ_(MB\_16_(MB]4(GB1

(6)8080、8088、8086、80286、80386的數(shù)據(jù)總線寬度分別為8根、8根、16根、16根、32根。則它們一

次可以傳送的數(shù)據(jù)為\_1_(BX_2_(BX_2_(BX

(7)從內(nèi)存中讀取1024字節(jié)的數(shù)據(jù),8086至少要讀512次,80386至少要讀256次。

(8)在存儲器中,數(shù)據(jù)和程序以二進制形式存放。

解題過程:

(1)1KB=1O24B,8KB=1024B*8=2'N,N=13o

(2)存儲器的容量是以字節(jié)為最小單位來計算的,1KB=1O24B。

(3)8Bit=lByte,1024Byte=lKB(lKB=1024B=1024B*8Bit卜

(4)1GB=1O73741824B(即2-30)1MB=1O48576B(即2'20)1KB=1O24B(即2"10\

(5)一個CPU有N根地址線,則可以說這個CPU的地址總線的寬度為No這樣的CPI最多可以尋找2的N次

方個內(nèi)存單元。(一個內(nèi)存單元=lByteb

8

4X編語d第二案

(6)8根數(shù)據(jù)總線一次可以傳送8位二進制數(shù)據(jù)(即一個字節(jié)X

(7)8086的數(shù)據(jù)總線寬度為16根(即一次傳送的數(shù)據(jù)為2B)1024B/2B=512,同理1024B/4B=256。

(8)在存儲器中指令和數(shù)據(jù)沒有任何區(qū)別,都是二進制信息。

3.第2章寄存器

3.1檢測點2.1(1)

檢測點2.1

(1)寫出每條匯編指令執(zhí)行后相關(guān)寄存器中的值。

movax,62627AX=F4A3H

movah,31HAX=31A3H

moval,23HAX=3123H

addax,axAX=6246H

movbx,826CHBX=826CH

movex,axCX=6246H

movax,bxAX=826cH

addax,bxAX=04D8H

moval,bhAX=0482H

movah,blAX=6C82H

addah,ahAX=D882H

addal,6AX=D888H

addal,alAX=D810H

movax,exAX=6246H

Microsoft(R)WindowsDOS

(C)CopyrightMicrosoftCorp1990-2001.

C:\D0CUME"1\ADMINI"1>debug

-a

0ClC:0100movax,f4a3

OC1C:O1O3movah,31

OC1C:O1O5moval,23

OC1C:O1O7addax,ax

OC1C:O1O9movbx,826c

OC1C:O1OCmovex,ax

OC1C:O1OEmovax,bx

OC1C:O11Oaddax,bx

9

OC1C:O112moval,bh

OC1C:O114movah,bl

OC1C:O116addah,ah

OC1C:O118addal,6

OC1C:O11Aaddal,al

OC1C:O11Cmovax,ex

OC1C:O11E

AX=OOOOBX=OOOOCX=OOOODX=OOOOSP:FFEEBP=OOOOSI=0000DI=OOOO

DS=OC1CES=OC1CSS=OC1CCS=OC1C1P=O1OONVUPEIPLNZNAPONC

OC1C:O1OOB8A3F4MOVAX,F4A3

-t

AX=F4A3BX=OOOOCX=OOOODX=OOOOSP二FFEEBP=OOOOSI=OOOODI=OOOO

DS=OCICES=OC1CSS=OC1CCS=OC1CIP=0103NVUPEIPLNZNAPONC

OC1C:O1O3B431MOVAH,31

-t

AX=31A3BX=OOOOCX=OOOODX=OOOOSP=FFEEBP=OOOOSI=0000DI=OOOO

DS=0C1CES=OC1CSS=OC1CCS=0C1CIP=0105NVUPEIPLNZNAPONC

OC1C:O1O5B023MOVAL,23

-t

AX=3123BX=OOOOCX=OOOODX=OOOOSP=FFEEBP=OOOOSI=OOOODI=OOOO

DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=0107NVUPEIPLNZNAPONC

OC1C:O1O701C0ADDAX,AX

-t

AX=6246BX=OOOOCX=OOOODX=OOOOSP二FFEEBP=OOOOSI=0000DI=OOOO

DS=OC1CES=OC1CSS=OC1CCS=OC1C1P=O1O9NVUPEIPLNZNAPONC

OC1C:O1O9BB6C82MOVBX,826C

-t

AX=6246BX=826CCX=OOOODX=OOOOSP:FFEEBP=OOOOSI=OOOODI=OOOO

DS=OCICES=OC1CSS=OC1CCS=OC1CIP=010CNVUPEIPLNZNAPONC

OC1C:O1OC89C1MOVCX,AX

-t

AX=6246BX=826CCX=6246DX=OOOOSP:FFEEBP=OOOOS1=0000DI=OOOO

DS=OCICES=OC1CSS=OC1CCS=OCICII^OIOENVUPEIPLNZNAPONC

OC1C:O1OE89D8MOVAX,BX

-t

AX=826CBX=826CCX=6246DX=OOOOSP=FFEEBP=OOOOSI-0000DI=OOOO

DS=0C1CES=OC1CSS=OC1CCS=OC1CIP=0110NVUPEIPLNZNAPONC

OC1C:O11O01D8ADDAX,BX

-t

AX=04D8BX=826CCX=6246DX=OOOOSP:FFEEBP=OOOOSI=OOOODI=OOOO

DS=OC1CES=OC1CSS=OC1CCS=OC1C1P=O112OVUPEIPLNZACPECY

OC1C:O11288F8MOVAL,BH

-t

10

AX=0482BX=826CCX=6246DX=OOOOSP二FFEEBP=OOOOS1=0000DI=OOOO

DS=OCICES=OC1CSS=OC1CCS=OC1C1P=O114OVUPEIPLNZACPECY

OC1C:O11488DCMOVAH,BL

AX=6C82BX=826CCX=6246DX=OOOOSP二FFEEBP=OOOOSI=0000DI=OOOO

DS=OC1CES=OCICSS=OC1CCS=OC1CIP=0116OVUPEIPLNZACPECY

OC1C:O11600E4ADDAH,AH

AX=D882BX=826CCX=6246DX=OOOOSP二FFEEBP=OOOOSI=0000DI=OOOO

DS=0C1CES=OC1CSS=0C1CCS=OC1CIP=0U8OVUPEINGNZACPENC

OC1C:O1180406ADDAL,06

AX=D888BX=826CCX=6246DX=OOOOSP:FFEEBP=OOOOSI=OOOODI=OOOO

DS=OCICES=0C1CSS=0C1CCS=OCICIP=0UANVUPEINGNZNAPENC

OC1C:O11AOOCOADDAL,AL

AX=D810BX=826CCX=6246DX=OOOOSP=FFEEBP=OOOOSI=0000DI=OOOO

DS=0C1CES=OC1CSS=OC1CCS=0C1CIP=01ICOVUPEIPLNZACPOCY

OC1C:O11C89C8MOVAX,CX

-t

AX=6246BX=826CCX=6246DX=OOOOSP二FFEEBP=OOOOSI=0000DI=OOOO

DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=011EOVUPEIPLNZACPOCY

OC1C:O11EOBOCORCX,[SI]DS:0000=20CD

3.2檢測點2.1(2)

檢測點2.1

(2)只能使用目前學過的匯編指令,最多使用4條指令,編程計算2的4次方。

movax,2AX=2

addax,axAX=4

addax,axAX=8

addax,axAX=16

Microsoft(R)WindowsDOS

(C)CopyrightMicrosoftCorp1990-2001.

C:\DOCUME~l\ADMINI~Ddebug

-a

OC1C:O1OOmovax,2

OC1C:O1O3addax,ax

11

OC1C:O1O5addax,ax

0C1C:0107addax,ax

OC1C:O1O9

AX=OOOOBX=OOOOCX=OOOODX=OOOOSP:FFEEBP=OOOOSI=0000DI=0000

DS=OC1CES=OCICSS=OC1CCS=OC1CIP=0100NVUPEIPLNZNAPONC

OC1C:O1OOB80200MOVAX,0002

AX=0002BX=OOOOCX=OOOODX=OOOOSP二FFEEBP=OOOOSI=0000DI=OOOO

DS=0C1CES=OC1CSS=0C1CCS=OC1CIP=0103NVUPEIPLNZNAPONC

OC1C:O1O301C0ADDAX,AX

AX=0004BX=OOOOCX=OOOODX=OOOOSP:FFEEBP=OOOOSI=0000DI=OOOO

DS=OCICES=0C1CSS=0C1CCS=OCICIP=0105NVUPEIPLNZNAPONC

OC1C:O1O501C0ADDAX,AX

AX=0008BX=OOOOCX=OOOODX=OOOOSP二FFEEBP=OOOOS1=0000DI=OOOO

DS=OCICES=OC1CSS=OC1CCS=OCICIP=0107NVUPEIPLNZNAPONC

OC1C:O1O701C0ADDAX,AX

AX=OOIOBX=OOOOCX=OOOODX=OOOOSP:FFEEBP=OOOOSI=0000DI=OOOO

DS=OC1CES=OCICSS=OC1CCS=OC1CIP=0109NVUPEIPLNZACPONC

OC1C:O1O920881615AND[BX+SI+1516],CLDS:1516-00

3.3檢測點2.2(1)

檢測點2.2

(1)給定段地址為0001H,僅通過變化偏移地址尋址,CPU的尋址范圍為0010H到1000FII。

解題過程:

物理地址=5人*16+以

EA的變化范圍為Oh'ffffh

物理地址范圍為(SA*16+0h)~(SA*16+ffffh)

現(xiàn)在SA=0001h,那么尋址范圍為

(0001h*16+0h)~(0001h*16+ffffh)

=0010h'1000fh

12

4X編語言匚第二案

3.4檢測點2.2(2)

檢測點2.2

(2)有一數(shù)據(jù)存放在內(nèi)存20000H單元中,現(xiàn)給定段地址為SA,若想用偏移地址尋到此單元。則SA應(yīng)滿足的

條件是:最小為100UI,最大為200011。

當段地址給定為1001H以下和2000H以上,CPU無論怎么變化偏移地址都無法尋到20000H單元。

解題過程:

物理地址=5人*16+£人

20000h=SA*16+EA

SA=(20000h-EA)/16=2000h-EA/l6

EA取最大值時,SA=2000h-ffffh/16=1001h,SA為最小值

EA取最小值時,SA=2000h-0h/16=2000h,SA為最大值

這里的ffffH/16=fffh是通過WIN自帶計算器算的

按位移來算確實應(yīng)該為fff.fh,這里小數(shù)點后的f應(yīng)該是省略了

單就除法來說,應(yīng)有商和余數(shù),但此題要求的是地址最大和最小,所以余數(shù)忽略了

如果根據(jù)位移的算法(段地址*16=16進制左移一位),小數(shù)點后應(yīng)該是不能省略的

我們可以反過來再思考下,如果SA為1000h的話,小數(shù)點后省略

SA=1000h,EA取最大ffffh,物理地址為Iffffh,將無法尋到20000H單元

這道題不應(yīng)看成是單純的計算題

13

4X編語d第二案

3.5檢測點2.3

檢測點2.3

下面的3條指令執(zhí)行后,cpu幾次修改IP?都是在什么時候?最后IP中的值是多少?

movax,bx

subax,ax

jmpax

答:一共修改四次

第一次:讀取movax,bx之后

第二次:讀取subax,ax之后

第三次:讀取.jmpax之后

第四次:執(zhí)行jmpax修改IP

最后IP的值為0000H,因為最后ax中的值為0000H,所以IP中的值也為0000H

3.6實驗一(1)

實驗一查看CPU和內(nèi)存,用機器指令和匯編指令編程

2實驗任務(wù)

(1)使用Debug,將下面的程序段寫入內(nèi)存,逐條執(zhí)行,觀察每條指令執(zhí)行后,CPU中相關(guān)寄存器中內(nèi)容的變

化。

機器碼匯編指令寄存器

b8204emovax,4E20Hax=4E20H

051614addax,1416Hax=6236H

bb0020movBX,2000Hbx=2000H

01d8addax,bxax=8236H

89c3movbx,axbx=8236H

01d8addax,bxax=046CH

b8la00movax,001AHax=001AH

bb2600movbx,0026Hbx=0026H

14

4X編語d第二案

00d8addal,blax=0040H

00deaddah,blax=2640H

00c7addbh,albx=4026H

b400movah,0ax=0040H

00d8addal,blax=0066H

049caddal,9CHax=0002H

Microsoft(R)WindowsDOS

(C)CopyrightMicrosoftCorp1990-2001.

C:\DOCUME"l\ADMINri>debug

-a

0C1C:0100movax,4e20

OC1C:O1O3addax,1416

OC1C:O1O6movbx,2000

OC1C:O1O9addax,bx

0C1C:010Bmovbx,ax

OC1C:O1ODaddax,bx

0C1C:010Fmovax,001a

OC1C:O112movbx,0026

OC1C:O115addal,bl

OC1C:O117addah,bl

OC1C:O119addbh,al

OC1C:O11Bmovah,0

OC1C:O11Daddal,bl

OC1C:O11Faddal,9c

OC1C:O121

-r

AX=0000BX=000()CX=0000DX=OOOOSP=FFEEBP=OOOOSI-0000DI=0000

DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=0100NVUPEIPLNZ,PONC

OC1C:O1OOB8204EMOVAX,4E20

-t

AX-4E20BX=OOOOCX=00001)X=0000SP=FFEEBP=OOOOSI-0000DI=0000

DS=OC1CES=OC1CSS=OC1CCS=OC1CIP=0103NVUPEIPLNZ,PONC

OC1C:O1O3051614ADI)AX,1416

-t

AX=6236BX=000()CX=OOOODX-0000SP=FFEEBP=0000SI=00001)1=0000

DSRC1CES=OC1CSS=OC1CCS=OC1CIP=0106NVUPEIPLNZ,PENC

OC1C:O1O6BB0020MOVBX,2000

AX=6236BX=2000CX=0000DX-0000SP=FFEEBP=0000SI-0000[)1=0000

DS=OCICES=OC1CSS=OC1CCS=OC1CIP=0109NVUPEIPLNZ?PENC

OC1C:O1O901D8ADDAX,BX

AX=8236BX=2000CX=0000DX=0000SP=FFEEBP-0000SI-00001)1=0000

15

《匯編語言》第二版習題答案

DS=OC1CES=OC1CSS=OC1CCS=OCICIP=010BOVUPEINGNZPENC

OC1C:O1OB89C3MOVBX,AX

AX=8236BX=8236CX-00001)X=0000SP=FFEEBP=0000SI=00001)1=0000

DSRC1CES=OC1CSS=OC1CCS=OC1CIP=010DOVUPEINGNZ,PENC

OC1C:O1OD01D8ADI)

AX=046cBX=8236CX=0000DX-0000SP=FFEEBP=0000SI-0000[)1=0000

DS=OCICES=OC1CSSRC1CCS=OC1CIP=010FOVUPEIPLNZ?PECY

OC1C:O1OFB81A00MOVAX,001A

AX-001ABX=8236CX=0000DX=0000SP=FFEEBP-0000SI-0000DI=0000

DS=OC1CES=OC1C

溫馨提示

  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論