汇编语言程序设计(第二版)课后习题答案

  • 格式:doc
  • 大小:164.00 KB
  • 文档页数:25

下载文档原格式

  / 25
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

汇编语言程序设计(第二版)课后习题答案

第二章

1.解答:有256个

2.解答:如下图.第一个络子为000B0H字单元,注意,是字单元,第五个格子为000B3H字单元

3.解答: 30022H字节单元内容: ABH 30024H字节单元内容: EFH

30021H字单元内容: AB34H 30022H字单元内容: CDABH

4.解答: 这三个物理地址都是3017AH,说明了不同的段地址和偏移地址对应同一物理地址

5.解答: CS+IP 第一个字的物理地址为: 0AAA40H

6.解答: 条件标志OF,SF,ZF,CF,的值依次为:0,0,0,0

7.下列操作可使用那些寄存器?

(1)加法和减法AX,BX,CX,DX,当然,还有这几个通用寄存器的高低位了,如AH ,AL等(2)循环计数 CX

(3)乘法和除法DX,AX,AH,AL

(4)保存段地址CS ,DS,ES,SS

(5)表示运算结果为O FLAGS

(6)将要执行的指令地址IP

(7) 将要从堆栈取出数据的地址BP,SP,SS

8.可以用来指示存储器地址的寄存器有:BX,SP,BP,DI,CS,DS,SI,ES,SS,IP

9.一一对应;

5--A 4--B 2--C 3--D 12--E 9--F 11--G 10--H 13--I 8--J 7--K 6---L 1--M 15--N 14--O

第三章

1.(1)立即寻址没有

(2)直接寻址 7237H

(3)使用BX的寄存器寻址没有

(4)使用BX的间接寻址 637DH

(5)使用BX的寄存器相对寻址 0D5B4H

(6)基址变址寻址 8E18H

(7)相对基址变址 004FH

2.根据下列要求,写出相应的汇编指令。

(1)ADD DX,BX

(2) ADD AL,[BX][SI]

(3) ADD [BX][0B2H], CX

(4) MOV AX,2A59H ADD [0524H] ,AX

(5) ADD AL ,0B5H

3.(1)寄存器间接寻址

MOV BX,OFFSET [BLOCK][0AH]

MOV DX ,[BX]

(2)寄存器相对寻址

MOV SI,OAH

MOV DX,[BLOCK][SI]

(3)基址变址寻址

MOV BX ,BLOCK

MOV SI,OAH

MOV DX,[BX][SI]

4.现有(DS)

=2000H,(BX)=0100H,(SI)=0002H,(20100)=12H,(20101)=34H,(20102)=56H,(20103)=78H,(2 1200)=2AH,(20201)=4CH,(21202)=B7H,(21203)=65H,试说明下列各条指令执行完后,AX寄存器的内容。

(1)MOV AX,1200H 1200H

(2) MOV AX,BX 0100H

(3) MOV AX,[1200] 4C2AH 注意,是字单元!!

(4)MOV AX,[BX] 3412H 同上

(5)MOV 1100[BX] 4C2AH

(6) MOV AX,[BX][SI] 7856H

(7) MOV AX,1100[BX][SI] 65B7H

5.(1) 7CD9H (2) 0600H (3)098AH

6. MOV BX,2000H

LES DI ,[BX]

MOV AX, ES:DI

7.转向地址OBJ的值分别为:

(1)064DH (2)0691H (3)05E0H 注意有符号数的符号位

8. (1)MOV AX,0ABH 立即数寻址无物理地址

(2)MOV AX,BX 寄存器寻址同上

(3)MOV AX,[100] 直接寻址 20100H

(4)MOV AX,VAL 直接寻址 20050H

(5) MOV AX,[BX] 寄存器间接寻址 20100H

(6) MOV AX,ES:[BX] 直接寻址 21100H

(7) MOV AX,[BP] 寄存器间接寻址 20010H

(8)MOV AX,[SI] 同上 200A0H

(9) MOV AX,[BX+10] 寄存器相对寻址 20110H

(10)MOV AX,VAL[BX] 同上 20150H

(11) MOV AX,[BX][SI] 基址变址寻址 201A0H

(12) MOV AX,VAL[BX][SI] 相对基相变址寻址 201F0H

9.(1)的指令: MOV AX, [BX][0CH] MOV ZREO ,AX

(2)的指令: MOV AX,ARRAY[BX] MOV ZREO,AX

10. MOV AX,TABLE 是把符号地址TABLE里的内容送到AX里,指令执行完后,(AX)=1234H

LEA AX,TABLE 是把符号地址TABLE 的有效地址(这里是偏移量)送到指定寄存器AX 里,指令执行完后,(AX)=0032H

11.执行完指令后,(AX)=1E00H

12. LEA AX,CSTRING

MOV DL,AX

MOV DH,[AX+6]

13.课本上P51--P53

14. LES BX,[2000]

MOV AX,ES:[BX]

一条指令的话为MOV AX,ES:[8000H]

15.运算结果 SF,ZF,CF,OF各位的值(从左至右依次往下)

(1)74D4H 0 0 0 0

(2) A5C1H 1 0 0 1

(3) 4240H 0 0 1 0

(4) 0000H 0 1 1 0

16.接上表

(1) 5D14 0 0 0 0

(2) A870 1 0 0 1

(3) D870 1 0 0 0

(4) 34E4 0 0 1 0

17. (1)MOV AX,Z ;把Z送到AX

SUB AX,X ;Z-X

ADD AX,W ;W+(Z-X)

MOV Z,AX ;结果保存在Z中

(2)MOV AX,R ;R送到AX中

ADD AX,9 ;R+9

MOV BX,X ;X送到BX中

ADD BX,6 ;X+6

ADD AX,BX ;(R+9)+(X+6),结果保存在AX中

MOV BX,W ; W送到BX中

SUB BX,AX ; W-(R+9)-(X+6),连续减去两个数,相当于减去这两个数的和

MOV Z,BX ;最终结果送到Z中

(3)

MOV AX,W ;把W送到AX

IMUL X ;W*X 注意:低十六位保存在AX里,高十六位保存在DX里

MOV BX,Y ;把Y送到BX 里

ADD BX,6 ;Y+6

IDIV BX ;(W*X)/(Y+6) 注意:商保存在AX里,余数保存在DX里

MOV Z,AX ;把商送到Z中,

MOV R,DX ;把余数送到R中

(4)

MOV AX,W ;把W送到AX中