汇编语言第二版复习题答案全 王爽编写.docx

上传人:b****8 文档编号:29095997 上传时间:2023-07-20 格式:DOCX 页数:246 大小:1.32MB
下载 相关 举报
汇编语言第二版复习题答案全 王爽编写.docx_第1页
第1页 / 共246页
汇编语言第二版复习题答案全 王爽编写.docx_第2页
第2页 / 共246页
汇编语言第二版复习题答案全 王爽编写.docx_第3页
第3页 / 共246页
汇编语言第二版复习题答案全 王爽编写.docx_第4页
第4页 / 共246页
汇编语言第二版复习题答案全 王爽编写.docx_第5页
第5页 / 共246页
点击查看更多>>
下载资源
资源描述

汇编语言第二版复习题答案全 王爽编写.docx

《汇编语言第二版复习题答案全 王爽编写.docx》由会员分享,可在线阅读,更多相关《汇编语言第二版复习题答案全 王爽编写.docx(246页珍藏版)》请在冰豆网上搜索。

汇编语言第二版复习题答案全 王爽编写.docx

汇编语言第二版复习题答案全王爽编写

检测点1.1

(1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为13位。

(2)1KB的存储器有1024个存储单元,存储单元的编号从0到1023。

(3)1KB的存储器可以存储8192(2^13)个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根,则它们的寻址能力分别为:

64(KB)、1(MB)、16(MB)、4(GB)。

(6)8080、8088、8086、80286、80386的数据总线宽度分别为8根、8根、16根、16根、32根。

则它们一次可以传送的数据为:

1(B)、1(B)、2(B)、2(B)、4(B)。

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

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

解题过程:

(1)1KB=1024B,8KB=1024B*8=2^N,N=13。

(2)存储器的容量是以字节为最小单位来计算的,1KB=1024B。

(3)8Bit=1Byte,1024Byte=1KB(1KB=1024B=1024B*8Bit)。

(4)1GB=1073741824B(即2^30)1MB=1048576B(即2^20)1KB=1024B(即2^10)。

(5)一个CPU有N根地址线,则可以说这个CPU的地址总线的宽度为N。

这样的CPU最多可以寻找2的N次方个存单元。

(一个存单元=1Byte)。

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

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

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

检测点2.1

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

movax,62627AX=F4A3H

movah,31HAX=31A3H

moval,23HAX=3123H

addax,axAX=6246H

movbx,826CHBX=826CH

movcx,axCX=6246H

movax,bxAX=826CH

addax,bxAX=04D8H

moval,bhAX=0482H

movah,blAX=6C82H

addah,ahAX=D882H

addal,6AX=D888H

addal,alAX=D810H

movax,cxAX=6246H

Microsoft(R)WindowsDOS

(C)CopyrightMicrosoftCorp1990-2001.

C:

\DOCUME~1\ADMINI~1>debug

-a

0C1C:

0100movax,f4a3

0C1C:

0103movah,31

0C1C:

0105moval,23

0C1C:

0107addax,ax

0C1C:

0109movbx,826c

0C1C:

010Cmovcx,ax

0C1C:

010Emovax,bx

0C1C:

0110addax,bx

0C1C:

0112moval,bh

0C1C:

0114movah,bl

0C1C:

0116addah,ah

0C1C:

0118addal,6

0C1C:

011Aaddal,al

0C1C:

011Cmovax,cx

0C1C:

011E

-r

AX=0000BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000

DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0100NVUPEIPLNZNAPONC

0C1C:

0100B8A3F4MOVAX,F4A3

-t

AX=F4A3BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000

DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0103NVUPEIPLNZNAPONC

0C1C:

0103B431MOVAH,31

-t

AX=31A3BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000

DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0105NVUPEIPLNZNAPONC

0C1C:

0105B023MOVAL,23

-t

AX=3123BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000

DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0107NVUPEIPLNZNAPONC

0C1C:

010701C0ADDAX,AX

-t

AX=6246BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000

DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0109NVUPEIPLNZNAPONC

0C1C:

0109BB6C82MOVBX,826C

-t

AX=6246BX=826CCX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000

DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=010CNVUPEIPLNZNAPONC

0C1C:

010C89C1MOVCX,AX

-t

AX=6246BX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000

DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=010ENVUPEIPLNZNAPONC

0C1C:

010E89D8MOVAX,BX

-t

AX=826CBX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000

DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0110NVUPEIPLNZNAPONC

0C1C:

011001D8ADDAX,BX

-t

AX=04D8BX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000

DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0112OVUPEIPLNZACPECY

0C1C:

011288F8MOVAL,BH

-t

AX=0482BX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000

DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0114OVUPEIPLNZACPECY

0C1C:

011488DCMOVAH,BL

-t

AX=6C82BX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000

DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0116OVUPEIPLNZACPECY

0C1C:

011600E4ADDAH,AH

-t

AX=D882BX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000

DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0118OVUPEINGNZACPENC

0C1C:

01180406ADDAL,06

-t

AX=D888BX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000

DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=011ANVUPEINGNZNAPENC

0C1C:

011A00C0ADDAL,AL

-t

AX=D810BX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000

DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=011COVUPEIPLNZACPOCY

0C1C:

011C89C8MOVAX,CX

-t

AX=6246BX=826CCX=6246DX=0000SP=FFEEBP=0000SI=0000DI=0000

DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=011EOVUPEIPLNZACPOCY

0C1C:

011E0B0CORCX,[SI]DS:

0000=20CD

-q

检测点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~1\ADMINI~1>debug

-a

0C1C:

0100movax,2

0C1C:

0103addax,ax

0C1C:

0105addax,ax

0C1C:

0107addax,ax

0C1C:

0109

-r

AX=0000BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000

DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0100NVUPEIPLNZNAPONC

0C1C:

0100B80200MOVAX,0002

-t

AX=0002BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000

DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0103NVUPEIPLNZNAPONC

0C1C:

010301C0ADDAX,AX

-t

AX=0004BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000

DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0105NVUPEIPLNZNAPONC

0C1C:

010501C0ADDAX,AX

-t

AX=0008BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000

DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0107NVUPEIPLNZNAPONC

0C1C:

010701C0ADDAX,AX

-t

AX=0010BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000

DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0109NVUPEIPLNZACPONC

0C1C:

010920881615AND[BX+SI+1516],CLDS:

1516=00

-q

检测点2.2

(1)给定段地址为0001H,仅通过变化偏移地址寻址,CPU的寻址围为0010H到1000FH。

解题过程:

物理地址=SA*16+EA

EA的变化围为0h~ffffh

物理地址围为(SA*16+0h)~(SA*16+ffffh)

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

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

=0010h~1000fh

检测点2.2

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

则SA应满足的条件是:

最小为1001H,最大为2000H。

当段地址给定为 1001H以下和2000H以上,CPU无论怎么变化偏移地址都无法寻到20000H单元。

 

解题过程:

物理地址=SA*16+EA

20000h=SA*16+EA

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

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,物理地址为1ffffh,将无法寻到20000H单元

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

检测点2.3

下面的3条指令执行后,cpu几次修改IP?

都是在什么时候?

最后IP中的值是多少?

movax,bx

subax,ax

jmpax

答:

一共修改四次

第一次:

读取movax,bx之后

第二次:

读取subax,ax之后

第三次:

读取jmpax之后

第四次:

执行jmpax修改IP

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

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

2实验任务

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

机器码汇编指令寄存器

b8204emovax,4E20Hax=4E20H

051614addax,1416Hax=6236H

bb0020movBX,2000Hbx=2000H

01d8addax,bxax=8236H

89c3movbx,axbx=8236H

01d8addax,bxax=046CH

b81a00movax,001AHax=001AH

bb2600movbx,0026Hbx=0026H

00d8addal,blax=0040H

00dcaddah,blax=2640H

00c7addbh,albx=4026H

b400movah,0ax=0040H

00d8addal,blax=0066H

049caddal,9CHax=0002H

Microsoft(R)WindowsDOS

(C)CopyrightMicrosoftCorp1990-2001.

C:

\DOCUME~1\ADMINI~1>debug

-a

0C1C:

0100movax,4e20

0C1C:

0103addax,1416

0C1C:

0106movbx,2000

0C1C:

0109addax,bx

0C1C:

010Bmovbx,ax

0C1C:

010Daddax,bx

0C1C:

010Fmovax,001a

0C1C:

0112movbx,0026

0C1C:

0115addal,bl

0C1C:

0117addah,bl

0C1C:

0119addbh,al

0C1C:

011Bmovah,0

0C1C:

011Daddal,bl

0C1C:

011Faddal,9c

0C1C:

0121

-r

AX=0000BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000

DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0100NVUPEIPLNZNAPONC

0C1C:

0100B8204EMOVAX,4E20

-t

AX=4E20BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000

DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0103NVUPEIPLNZNAPONC

0C1C:

0103051614ADDAX,1416

-t

AX=6236BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000

DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0106NVUPEIPLNZNAPENC

0C1C:

0106BB0020MOVBX,2000

-t

AX=6236BX=2000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000

DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0109NVUPEIPLNZNAPENC

0C1C:

010901D8ADDAX,BX

-t

AX=8236BX=2000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000

DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=010BOVUPEINGNZNAPENC

0C1C:

010B89C3MOVBX,AX

-t

AX=8236BX=8236CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000

DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=010DOVUPEINGNZNAPENC

0C1C:

010D01D8ADDAX,BX

-t

AX=046CBX=8236CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000

DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=010FOVUPEIPLNZNAPECY

0C1C:

010FB81A00MOVAX,001A

-t

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

DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0112OVUPEIPLNZNAPECY

0C1C:

0112BB2600MOVBX,0026

-t

AX=001ABX=0026CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000

DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0115OVUPEIPLNZNAPECY

0C1C:

011500D8ADDAL,BL

-t

AX=0040BX=0026CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000

DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0117NVUPEIPLNZACPONC

0C1C:

011700DCADDAH,BL

-t

AX=2640BX=0026CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000

DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0119NVUPEIPLNZNAPONC

0C1C:

011900C7ADDBH,AL

-t

AX=2640BX=4026CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000

DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=011BNVUPEIPLNZNAPONC

0C1C:

011BB400MOVAH,00

-t

AX=0040BX=4026CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000

DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=011DNVUPEIPLNZNAPONC

0C1C:

011D00D8ADDAL,BL

-t

AX=0066BX=4026CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000

DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=011FNVUPEIPLNZNAPENC

0C1C:

011F049CADDAL,9C

-t

AX=0002BX=4026CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000

DS=0C1CES=0C1CSS=0C1CCS=0C1CIP=0121NVUPEIPLNZACPOCY

0C1C:

0121D3990075RCRWORDPTR[BX+DI+7500],CLDS:

B526=0000

-q

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

(2)将下面的3条指令写入从2000:

0开始的存单元中,利用这3条指令计算2的8次方。

movax,1

addax,ax

jmp2000:

0003

Microsoft(R)WindowsDOS

(C)CopyrightMicrosoftCorp1990-2001.

C:

\DOCUME~1\ADMINI~1>debug

-a2000:

0

2000:

0000movax,1

2000:

0003addax,ax

2000:

0005jmp2000:

0003

2000:

0007

-rcs

CS0C1C

:

2000

-rip

IP0100

:

0000

-r

AX=0000BX=0000CX=0000DX=0000SP=FFEEBP=0000SI=0000DI=0000

DS=0C1CES=0C1CSS=0C1C

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1