王爽《汇编语言》第二版习题答案_第1页
王爽《汇编语言》第二版习题答案_第2页
王爽《汇编语言》第二版习题答案_第3页
王爽《汇编语言》第二版习题答案_第4页
王爽《汇编语言》第二版习题答案_第5页
已阅读5页,还剩180页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

《汇编语言》第二版习题答

目录

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

2.第1章基础知识..............................................................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章寄存器(内存访问)...................................................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章更灵活的定位内存地址的方法..........................................49

8.1实验6(1).....................................................................................................................49

8.2实验6(2).....................................................................................................................49

9.第8章数据处理的两个基本问题...............................................50

9.1实验7..........................................................................................................................50

10.第9章转移指令的原理......................................................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课程设计一.............................................................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章内中断.............................................................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课程设计2..............................................................................................................138

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

19.1研究试验1搭建一个精简的C语言开发环境..............................153

19.2研究实验2使用寄存器.................................................153

19.3研究试验3使用内存空间...............................................159

20.部分章节笔记..............................................................165

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

20.2第12章内中断.......................................................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版),王爽著,清华大学出版社。

长期以来,汇编语言被认为是一门枯燥难学的课程,但王爽老师的著作《汇编语言》解决了这个问题。

本人仅将自己在学习此书时所做的答案及一些个人笔记进行了整理并编辑成集,方便日后查阅。

后因朋友要求,发于网上共享。

由于本人水平有限,制作仓促,不能保证解析完全正确。

如果你在对照的过程中,发现了错误的地方,可以写信告知本人,在此先表示感谢。

邮箱:gray_always@qq.com;

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

如有其它疑问,可到专门为《汇编语言》读者开设的论坛中寻求帮助。

网站地址:http:〃www.asmedu.net/bbs/forum.jsp

制作者:灰色依然

制作日期:2008年7月

如需转载,请注明来源和出处,谢谢。

7

4X编语d第二案

2.第1章基础知识

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的数据总线宽度分别为8根、8根、16根、16根、32根。则它们一

次可以传送的数据为\_1_(BX_2_(BX_2_(BX

(7)从内存中读取1024字节的数据,8086至少要读512次,80386至少要读256次。

(8)在存储器中,数据和程序以二进制形式存放。

解题过程:

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

(2)存储器的容量是以字节为最小单位来计算的,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次

方个内存单元。(一个内存单元=lByteb

8

4X编语d第二案

(6)8根数据总线一次可以传送8位二进制数据(即一个字节X

(7)8086的数据总线宽度为16根(即一次传送的数据为2B)1024B/2B=512,同理1024B/4B=256。

(8)在存储器中指令和数据没有任何区别,都是二进制信息。

3.第2章寄存器

3.1检测点2.1(1)

检测点2.1

(1)写出每条汇编指令执行后相关寄存器中的值。

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)

现在SA=0001h,那么寻址范围为

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

=0010h'1000fh

12

4X编语言匚第二案

3.4检测点2.2(2)

检测点2.2

(2)有一数据存放在内存20000H单元中,现给定段地址为SA,若想用偏移地址寻到此单元。则SA应满足的

条件是:最小为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自带计算器算的

按位移来算确实应该为fff.fh,这里小数点后的f应该是省略了

单就除法来说,应有商和余数,但此题要求的是地址最大和最小,所以余数忽略了

如果根据位移的算法(段地址*16=16进制左移一位),小数点后应该是不能省略的

我们可以反过来再思考下,如果SA为1000h的话,小数点后省略

SA=1000h,EA取最大ffffh,物理地址为Iffffh,将无法寻到20000H单元

这道题不应看成是单纯的计算题

13

4X编语d第二案

3.5检测点2.3

检测点2.3

下面的3条指令执行后,cpu几次修改IP?都是在什么时候?最后IP中的值是多少?

movax,bx

subax,ax

jmpax

答:一共修改四次

第一次:读取movax,bx之后

第二次:读取subax,ax之后

第三次:读取.jmpax之后

第四次:执行jmpax修改IP

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

3.6实验一(1)

实验一查看CPU和内存,用机器指令和汇编指令编程

2实验任务

(1)使用Debug,将下面的程序段写入内存,逐条执行,观察每条指令执行后,CPU中相关寄存器中内容的变

化。

机器码汇编指令寄存器

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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论