IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大学出版社)
《汇编语言程序设计》教案及答案第二版-2007

《汇编语言程序设计》教案附:习题参考答案《IBM-PC汇编语言程序设计》(第2版)沈美明、温冬婵编著教案编写时间:2007年8月18日前言1.汇编语言是计算机能提供给用户的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。
2.汇编语言程序设计是高等院校电子计算机硬、软件及应用专业学生必修的核心课程之一。
它不仅是计算机原理、操作系统等其它核心课程的必要先修课,而且对于训练学生掌握程序设计技术、熟悉上机操作和程序调试技术都有重要作用。
3.本教材共有十一章,其内容安排如下:(1).第一、二章为汇编语言所用的基础知识。
(2).第三章详细介绍80x86系列CPU的指令系统和寻址方式。
(3).第四章介绍伪操作、汇编语言程序格式及汇编语言的上机过程。
(4).第五、六章说明循环、分支、子程序结构和程序设计的基本方法。
(5).第七章说明宏汇编、重复汇编及条件汇编的设计方法。
(6).第八章叙述输入/输出程序设计方法,重点说明中断原理、中断过程及中断程序设计方式。
(7).第九章说明BIOS和DOS系统功能调用的使用方法。
(8).第十~十一章分别说明图形显示、发声及磁盘文件存储的程序设计方法,同时提供各种程序设计方法和程序实例。
附:教学参考书1.沈美明、温冬婵编著,IBM–PC汇编语言程序设计(第2版),清华大学出版社,2001年(教材)2.沈美明、温冬婵编著,IBM–PC汇编语言程序设计,清华大学出版社,1991年3.沈美明、温冬婵编著,IBM–PC汇编语言程序设计—例题习题集,清华大学出版社,1991年6月4.沈美明、温冬婵、张赤红编著,IBM–PC汇编语言程序设计—实验教程,清华大学出版社,1992年5.周明德,微型计算机IBM PC/XT(0520系列)系统原理及应用(修订版),清华大学出版社,19916.郑学坚、周斌,微型计算机原理及应用(第二版),清华大学出版社,19957.王士元、吴芝芳,IBM PC/XT[长城0520] 接口技术及其应用,南开大学出版社,19908.杨素行,微型计算机系统原理及应用,清华大学出版社,19959.戴梅萼、史嘉权,微型计算机技术及应用—从16位到32位(第二版),清华大学出版社,199610.张昆藏,IBM PC/XT微型计算机接口技术,清华大学出版社,199111.孟绍光,李维星,高档微机组成原理及接口技术(80386/80486/Pentium),学苑出版社,199312.吴秀清,周荷琴,微型计算机原理与接口技术,中国科学技术大学出版社目录第 1 章基础知识 (5)1.1进位计数制与不同基数的数之间的转换 (5)1.2二进制数和十六进制数的运算 (6)1.3计算机中数和字符的表示 (7)1.4几种基本的逻辑运算 (7)第 2 章80X86计算机组织 (8)2.180X86微处理器 (8)2.2基于微处理器的计算机系统构成 (8)2.3中央处理机 (9)2.4存储器 (10)2.5外部设备 (11)第 3 章80X86的指令系统和寻址方式 (13)3.180X86的寻址方式 (13)3.2程序占有的空间和执行时间 (15)3.380X86的指令系统 (15)第 4 章汇编语言程序格式 (32)4.1汇编程序功能 (32)4.2伪操作 (32)4.3汇编语言程序格式 (36)4.4汇编语言程序的上机过程 (39)第 5 章循环与分支程序设计 (42)5.1循环程序设计 (42)5.2分支程序设计 (43)5.3如何在实模式下发挥80386及其后继机型的优势 (43)第 6 章子程序结构 (45)6.1子程序的设计方法 (45)6.2子程序的嵌套 (46)6.3子程序举例 (46)第7 章高级汇编语言技术 (48)7.1宏汇编 (48)7.2重复汇编 (49)7.3条件汇编 (50)第8 章输入/输出程序设计 (51)8.1I/O设备的数据传送方式 (51)8.2程序直接控制I/O方式 (52)8.3中断传送方式 (52)第9 章BIOS和DOS中断 (55)9.1键盘I/O (55)9.2显示器I/O (57)9.3打印机I/O (58)9.4串行通信口I/O (59)第10 章图形与发声系统的程序设计 (60)10.1显示方式 (60)10.2视频显示存储器 (60)10.3EGA/VGA图形程序设计 (61)10.4通用发声程序 (62)10.5乐曲程序 (63)第11 章磁盘文件存取技术 (64)11.1磁盘的记录方式 (64)11.2文件代号式磁盘存取 (65)11.3字符设备的文件代号式I/O (66)11.4BIOS磁盘存取功能 (67)附录:《IBM—PC汇编语言程序设计》习题参考答案 (68)第一章.习题 (68)第二章.习题 (69)第三章.习题 (70)第四章.习题 (83)第五章.习题 (88)第六章.习题 (107)第七章.习题 (120)第八章.习题 (126)第九章.习题 (131)第十章.习题 (134)第十一章.习题 (145)第 1 章 基础知识【教学目的】本章内容是本课程的基础,通过本章学习,使学生明确汇编语言程序设计的学科性质、基本内容和学习意义,掌握数制的转换、数据的编码,了解本门课程的教学要求和学习方法。
IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大学出版社)

IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大学出版社)(沈美明,温冬蝉著)第二章1.解答:有256个2.解答:如下图.第一个络子为000B0H字单元,注意,是字单元,第五个格子为000B3H字单元E51E3C2A3.解答: 30022H字节单元内容: ABH 30024H字节单元内容: EFH30021H字单元内容: AB34H 30022H字单元内容: CDABH4.解答: 这三个物理地址都是3017AH,说明了不同的段地址和偏移地址对应同一物理地址5.解答: CS+IP 第一个字的物理地址为: 0AAA40H6.解答: 条件标志OF,SF,ZF,CF,的值依次为:0,0,0,07.下列操作可使用那些寄存器?(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,SS8.可以用来指示存储器地址的寄存器有:BX,SP,BP,DI,CS,DS,SI,ES,SS,IP9.一一对应;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)相对基址变址004FH2.根据下列要求,写出相应的汇编指令。
(1)ADD DX,BX(2) ADD AL,[BX][SI](3) ADD [BX][0B2H], CX(4) MOV AX,2A59H ADD [0524H] ,AX(5) ADD AL ,0B5H3.(1)寄存器间接寻址MOV BX,OFFSET [BLOCK][0AH]MOV DX ,[BX](2)寄存器相对寻址MOV SI,OAHMOV DX,[BLOCK][SI](3)基址变址寻址MOV BX ,BLOCKMOV SI,OAHMOV DX,[BX][SI]4.现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100)=12H,(20101)=34H,(20102)=56H,(20103)=78H,(2120 0)=2AH,(20201)=4CH,(21202)=B7H,(21203)=65H,试说明下列各条指令执行完后,AX寄存器的内容。
《IBM-PC汇编语言程序设计》教案及答案(第二版)

《汇编语言程序设计》教案附:习题参考答案《IBM-PC汇编语言程序设计》(第2版)沈美明、温冬婵编著教案编写时间:20XX年8月18日前言1.汇编语言是计算机能提供给用户的最快而又最有效的语言,也是能够利用计算机所有硬件特性并能直接控制硬件的唯一语言。
2.汇编语言程序设计是高等院校电子计算机硬、软件及应用专业学生必修的核心课程之一。
它不仅是计算机原理、操作系统等其它核心课程的必要先修课,而且对于训练学生掌握程序设计技术、熟悉上机操作和程序调试技术都有重要作用。
3.本教材共有十一章,其内容安排如下:(1).第一、二章为汇编语言所用的基础知识。
(2).第三章详细介绍80x86系列CPU的指令系统和寻址方式。
(3).第四章介绍伪操作、汇编语言程序格式及汇编语言的上机过程。
(4).第五、六章说明循环、分支、子程序结构和程序设计的基本方法。
(5).第七章说明宏汇编、重复汇编及条件汇编的设计方法。
(6).第八章叙述输入/输出程序设计方法,重点说明中断原理、中断过程及中断程序设计方式。
(7).第九章说明BIOS和DOS系统功能调用的使用方法。
(8).第十~十一章分别说明图形显示、发声及磁盘文件存储的程序设计方法,同时提供各种程序设计方法和程序实例。
附:教学参考书1.沈美明、温冬婵编著,IBM–PC汇编语言程序设计(第2版),清华大学出版社,20XX年(教材)2.沈美明、温冬婵编著,IBM–PC汇编语言程序设计,清华大学出版社,1991年3.沈美明、温冬婵编著,IBM–PC汇编语言程序设计—例题习题集,清华大学出版社,1991年6月4.沈美明、温冬婵、张赤红编著,IBM–PC汇编语言程序设计—实验教程,清华大学出版社,1992年5.周明德,微型计算机IBM PC/XT(0520系列)系统原理及应用(修订版),清华大学出版社,19916.郑学坚、周斌,微型计算机原理及应用(第二版),清华大学出版社,19957.王士元、吴芝芳,IBM PC/XT[长城0520] 接口技术及其应用,南开大学出版社,19908.杨素行,微型计算机系统原理及应用,清华大学出版社,19959.戴梅萼、史嘉权,微型计算机技术及应用—从16位到32位(第二版),清华大学出版社,199610.张昆藏,IBM PC/XT微型计算机接口技术,清华大学出版社,199111.孟绍光,李维星,高档微机组成原理及接口技术(80386/80486/Pentium),学苑出版社,199312.吴秀清,周荷琴,微型计算机原理与接口技术,中国科学技术大学出版社目录第 1 章基础知识 (6)1.1进位计数制与不同基数的数之间的转换 (6)1.2二进制数和十六进制数的运算 (8)1.3计算机中数和字符的表示 (8)1.4几种基本的逻辑运算 (9)第 2 章80X86计算机组织 (10)2.180X86微处理器 (10)2.2基于微处理器的计算机系统构成 (11)2.3中央处理机 (11)2.4存储器 (13)2.5外部设备 (15)第 3 章80X86的指令系统和寻址方式 (16)3.180X86的寻址方式 (16)3.2程序占有的空间和执行时间 (18)3.380X86的指令系统 (19)第 4 章汇编语言程序格式 (41)4.1汇编程序功能 (41)4.2伪操作 (41)4.3汇编语言程序格式 (46)4.4汇编语言程序的上机过程 (50)第 5 章循环与分支程序设计 (53)5.1循环程序设计 (53)5.2分支程序设计 (54)5.3如何在实模式下发挥80386及其后继机型的优势 (54)第 6 章子程序结构 (56)6.1子程序的设计方法 (56)6.2子程序的嵌套 (58)6.3子程序举例 (58)第7 章高级汇编语言技术 (59)7.1宏汇编 (59)7.2重复汇编 (60)7.3条件汇编 (61)第8 章输入/输出程序设计 (63)8.1I/O设备的数据传送方式 (63)8.2程序直接控制I/O方式 (64)8.3中断传送方式 (64)第9 章BIOS和DOS中断 (68)9.1键盘I/O (69)9.2显示器I/O (71)9.3打印机I/O (72)9.4串行通信口I/O (73)第10 章图形与发声系统的程序设计 (75)10.1显示方式 (75)10.2视频显示存储器 (75)10.3EGA/VGA图形程序设计 (76)10.4通用发声程序 (77)10.5乐曲程序 (79)第11 章磁盘文件存取技术 (80)11.1磁盘的记录方式 (80)11.2文件代号式磁盘存取 (82)11.3字符设备的文件代号式I/O (83)11.4BIOS磁盘存取功能 (83)附录:《IBM—PC汇编语言程序设计》习题参考答案 (85)第一章.习题 (85)第二章.习题 (86)第三章.习题 (88)第四章.习题 (106)第五章.习题 (113)第六章.习题 (136)第七章.习题 (153)第八章.习题 (161)第九章.习题 (168)第十章.习题 (172)第十一章.习题 (186)第 1 章 基础知识【教学目的】本章内容是本课程的基础,通过本章学习,使学生明确汇编语言程序设计的学科性质、基本内容和学习意义,掌握数制的转换、数据的编码,了解本门课程的教学要求和学习方法。
《IBM-PC汇编语言程序设计》(第2版)第3章习题解答及答案

第3章习题答案3.1 给定(BX)=637DH,(SI)=2A9BH,位移量D=7237H,试确定在以下各种寻址方式下的有效地址是什么?(1)立即寻址;答案:无。
如:MOV AX,5(2)直接寻址;答案:7237H 如:MOV AX,[7237H](3)使用BX的寄存器寻址;答案:无。
因不涉及内存如:MOV AX,BX(4)使用BX的间接寻址;答案:637DH 如:MOV AX,[BX](5)使用BX的寄存器相对寻址答案:D5B4H 如:MOV AX,[BX+ 7237H](6)基址变址寻址答案:8E18H 如:MOV AX,[BX][SI](7)相对基址变址寻址;答案:无效,溢出如:MOV AX,[BX][SI] + 7237H 3.2 试根据以下要求,写出相应的汇编语言指令:(1)把BX寄存器和DX寄存器的内容相加,结果存入DX寄存器中;答案:ADD DX,BX(2) 用寄存器BX 和SI 的基址变址寻址方式把存储器中的一个字节与AL寄存器的内容相加,并把结果送到AL寄存器中;答案:ADD AL,[BX][SI](3) 用寄存器BX和位移量0B2H的寄存器相对寻址方式把存储器中的一个字和(CX)相加,并把结果送回到存储器中;答案:ADD [BX+0B2H],CX (4) 用位移量为0524H的直接寻址方式把存储器中的一个字与数2A59H相加,并把结果送回到该存储单元中;答案:ADD WORD PTR [0524H],2A59H (5)把数0B5H与(AL)相加,并把结果送回AL中。
答案:ADD AL, 0B5H3.3 写出把首地址为BLOCK的字数组的第6个字送到DX寄存器的指令。
要求使用以下几种寻址方式:(1) 寄存器间接寻址答案:LEA BX, BLOCKADD BX, 5*2MOV DX, [BX](2) 寄存器相对寻址答案:LEA BX, BLOCKMOV DX, [BX+5*2](3) 基址变址寻址答案:LEA BX, BLOCKMOV SI,5*2MOV DX, [BX][SI]3.4 现有(DS)=2000H,(BX)=0100H,(SI)=0002H,(20100)=12H,(20101)=34H,(20102)=56, (20103)=78H,(21200)=2AH,(21201)=4CH, (21202)=B7H, (21203)=65H,试说明下列各条指令执行完后AX寄存器的内容。
IBM-PC汇编语言 程序设计第2版 答案 甄选

IBM-PC汇编语言程序设计第2版答案(优选.)附录:《IBM—PC汇编语言程序设计》习题参考答案第一章.习题二三四五六七1.1用降幂法和除法将下列十进制数转换为二进制数和十六进制数:(1) 369 (2) 10000 (3) 4095 (4) 32767答:(1) 369=1 0111 0001B=171H(2) 10000=10 0111 0001 0000B=2710H(3) 4095=1111 1111 1111B=FFFH(4) 32767=111 1111 1111 1111B=7FFFH1.2将下列二进制数转换为十六进制数和十进制数:(1) 10 1101 (2) 1000 0000 (3) 1111 1111 1111 1111 (4) 1111 1111答:(1) 10 1101B=2DH=45(2) 1000 0000B=80H=128(3) 1111 1111 1111 1111B=FFFFH=65535(4) 1111 1111B=FFH=2551.3将下列十六进制数转换为二进制数和十进制数:(1) FA (2) 5B (3) FFFE (4) 1234答:(1) FAH=1111 1010B=250(2) 5BH=101 1011B=91(3) FFFEH=1111 1111 1111 1110B=65534(4) 1234H=1 0010 0011 0100B=46601.4完成下列十六进制数的运算,并转换为十进制数进行校核:(1) 3A+B7 (2) 1234+AF (3) ABCD-FE (4) 7AB×6F答:(1) 3A+B7H=F1H=241(2) 1234+AFH=12E3H=4835(3) ABCD-FEH=AACFH=43727(4) 7AB×6FH=35325H=2178931.5下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十六进制数表示其运算结果。
IBM-PC汇编语言程序设计课后习题答案第二版doc

第一章1.1 用降幂法和除法将下列十进制数转换为二进制数和十六进制数:(1) 369 (2) 10000 (3) 4095 (4) 32767答:(1) 369=1 0111 0001B=171H(2) 10000=10 0111 0001 0000B=2710H(3) 4095=1111 1111 1111B=FFFH(4) 32767=111 1111 1111 1111B=7FFFH1.2 将下列二进制数转换为十六进制数和十进制数:(1) 10 1101 (2) 1000 0000 (3) 1111 1111 1111 1111 (4) 1111 1111 答:(1) 10 1101B=2DH=45(2) 1000 0000B=80H=128(3) 1111 1111 1111 1111B=FFFFH=65535(4) 1111 1111B=FFH=2551.3 将下列十六进制数转换为二进制数和十进制数:(1) FA (2) 5B (3) FFFE (4) 1234答:(1) FAH=1111 1010B=250(2) 5BH=101 1011B=91(3) FFFEH=1111 1111 1111 1110B=65534(4) 1234H=1 0010 0011 0100B=46601.4 完成下列十六进制数的运算,并转换为十进制数进行校核:(1) 3A+B7 (2) 1234+AF (3) ABCD-FE (4) 7AB×6F答:(1) 3A+B7H=F1H=241(2) 1234+AFH=12E3H=4835(3) ABCD-FEH=AACFH=43727(4) 7AB×6FH=35325H=2178931.5 下列各数均为十进制数,请用8位二进制补码计算下列各题,并用十六进制数表示其运算结果。
(1) (-85)+76 (2) 85+(-76) (3) 85-76 (4) 85-(-76) (5) (-85)-76 (6)-85-(-76)答:(1) (-85)+76=1010 1011B+0100 1100B=1111 0111B=0F7H;CF=0;OF=0(2) 85+(-76)=0101 0101B+1011 0100B=0000 1001B=09H;CF=1;OF=0(3) 85-76=0101 0101B-0100 1100B=0101 0101B+1011 0100B=0000 1001B=09H;CF=0;OF=0(4) 85-(-76)=0101 0101B-1011 0100B=0101 0101B+0100 1100B=10100001B=0A1H;CF=0;OF=1(5) (-85)-76=1010 1011B-0100 1100B=1010 1011B+1011 0100B=0101 1111B=5FH;CF=0;OF=1(6) -85-(-76)=1010 1011B-1011 0100B=1010 1011B+01001100B=11110111B=0F7H;CF=0;OF=01.6 下列各数为十六进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的带符号数或无符号数时,它们所表示的十进制数是什么?(1) D8 (2) FF答:(1) D8H表示的带符号数为 -40,D8H表示的无符号数为216;(2) FFH表示的带符号数为 -1, FFH表示的无符号数为255。
汇编语言程序设计(第二版)课后习题答案

汇编语言程序设计(第二版)课后习题答案第二章1.解答:有256个2.解答:如下图.第一个络子为000B0H字单元,注意,是字单元,第五个格子为000B3H字单元E51E3C2A3.解答:30022H字节单元内容:ABH30024H字节单元内容:EFH30021H字单元内容:AB34H30022H字单元内容:CDABH4.解答:这三个物理地址都是3017AH,说明了不同的段地址和偏移地址对应同一物理地址5.解答:CS+IP第一个字的物理地址为:0AAA40H6.解答:条件标志OF,SF,ZF,CF,的值依次为:0,0,0,07.下列操作可使用那些寄存器?(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,SS8.可以用来指示存储器地址的寄存器有:BX,SP,BP,DI,CS,DS,SI,ES,SS,IP9.一一对应;5--A4--B2--C3--D12--E9--F11--G10--H13--I8--J7--K6---L1--M15--N14--O第三章1.(1)立即寻址没有(2)直接寻址7237H(3)使用BX的寄存器寻址没有(4)使用BX的间接寻址637DH(5)使用BX的寄存器相对寻址0D5B4H(6)基址变址寻址8E18H(7)相对基址变址004FH2.根据下列要求,写出相应的汇编指令。
(1)ADD DX,BX(2)ADD AL,[BX][SI](3)ADD[BX][0B2H],CX(4)MOV AX,2A59H ADD[0524H],AX(5)ADD AL,0B5H3.(1)寄存器间接寻址MOV BX,OFFSET[BLOCK][0AH]MOV DX,[BX](2)寄存器相对寻址MOV SI,OAHMOV DX,[BLOCK][SI](3)基址变址寻址MOV BX,BLOCKMOV SI,OAHMOV 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寄存器的内容。
IBM-PC汇编语言程序设计(第二版)课后习题标准答案(清华大学出版社)解析

IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大学出版社)解析————————————————————————————————作者:————————————————————————————————日期:IBM-PC汇编语言程序设计(第二版)课后习题答案(清华大学出版社)(沈美明,温冬蝉著)第二章1.解答:有256个2.解答:如下图.第一个络子为000B0H字单元,注意,是字单元,第五个格子为000B3H字单元E51E3C2A3.解答: 30022H字节单元内容: ABH 30024H字节单元内容: EFH30021H字单元内容: AB34H 30022H字单元内容: CDABH4.解答: 这三个物理地址都是3017AH,说明了不同的段地址和偏移地址对应同一物理地址5.解答: CS+IP 第一个字的物理地址为: 0AAA40H6.解答: 条件标志OF,SF,ZF,CF,的值依次为:0,0,0,07.下列操作可使用那些寄存器?(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,SS8.可以用来指示存储器地址的寄存器有:BX,SP,BP,DI,CS,DS,SI,ES,SS,IP9.一一对应;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)相对基址变址004FH2.根据下列要求,写出相应的汇编指令。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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 中
IBM-PC 汇编语言程序设计(第二版)课后习题答案(清华大学出版社) (沈美明,温冬蝉著) 第二章
1.解答:有 256 个 2.解答:如下图.第一个络子为 000B0H 字单元,注意,是字单元,第五个格子为 000B3H 字单元
E5 1E
3C
2A 3.解答: 30022H 字节单元内容: ABH 30024H 字节单元内容: EFH
(2) ADD AL,[BX][SI]
(3) ADD [BX][0B2H], CX
(4) MOV AX,2A59H
ADD [0524H] ,AX
(5) ADD AL ,0B5H
微信:332107782
3.(1)寄存器间接寻址 MOV BX,OFFSET [BLOCK][0AH] MOV DX ,[BX]
(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
(12) MOV AX,VAL[BX][SI] 相对基相变址寻址 201F0H
9.(1)的指令: MOV AX, [BX][0CH]
MOV ZREO ,AX
(2)的指令: MOV AX,ARRAY[BX]
MOV ZREO,AX
微信:332107782
10. MOV AX,TABLE 是把符号地址 TABLE 里的内容送到 AX 里,指令执行完后,
(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
(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 中,
0)=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]
SHL AX ,1
(2)把 53 除以 2 的程序:
MOV AX,35H
SHR AX,1
26.這段程序完成的功能是:把 DX:AX 中的雙字數據左移 4 位(相當於乘以 16D)
27.各條指令單獨執行後,DX 的值依次為:
(1)5CH(2)17H(3)05C8H(4)72H(5)2017H(6)0CDH(7)0172H(8)05CCH
RIGHT: MOV B ,AX
MOV [B+2],DX
23.每條指令單獨執行完後的結果依次為:
(1) 9AH (2)61H (3)0FBH (4)1CH (5)0 (6)0E3H
24.執行指令序列後,BX 的內容為:0DAH
25.
(1)把 53D 乘以 2 的程序:
MOV AX,35H
;53D=35H
(5) MOV AX,DATAX
MOV DX,[DATAX+2]
MUL DWORD DATAY ;結果的高三十二位保存在 EDX 裏,低三十二位保存在 EAX
裏
(6)MOV AX,DATAX
DIV 17H
;結果商保存在 AL 中,余數在 AH 中
(7) MOV AX,DATAX
CDW
DIV DATAY
N 14--O
第三章
1.(1)立即寻址 (2)直接寻址
(3)使用 BX 的寄存器寻址
没有 7237H 没有
(4)使用 BX 的间接寻址
637DH
(5)使用 BX 的寄存器相对寻址 0D5B4H
(6)基址变址寻址
8E18H
(7)相对基址变址
004FH
2.根据下列要求,写出相应的汇编指令。
(1)ADD DX,BX
1011
SUB AX,1
FFFFH
1101
AND AX,58D1H
58D1H
0000
SAL AX,1
B1A2H
0101
SAR AX,1
D8D1H
0100
NEG AX
272FH
1000
ROR AX,1
9397H
1001
20.
(1)MOV AX,DATAX
ADD DATAY,AX
(2)MOV AX,DATAX
14. LES BX,[2000]
MOV AX,ES:[BX]
一条指令的话为 MOV AX,ES:[8000H]
15.运算结果
SF,ZF,CF,OF 各位的值(从左至右依次往下)
(1)74D4H
0000
(2) A5C1H
10 0 1
(3) 4240H
0010
(4) 0000H
0110
16.接上表
(1) 5D14
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 的值分别为:
(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--
IMUL Y ;上一步结果再乖以 Y,积为 32 位
MOV BX,2 ;把 2 送到 BX 中
IMUL BX
;上一步乘法所得的积再乘以 2,各为 64 位
MOV Z,EAX ;把结果中低 32 位放入 Z 双字单元中
MOV [Z+4],EDX ;把结果中高 32 位放入 Z+4 双字单元中
18.
指令
(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,(2120
STD ;和上面唯一不同的就是这次是从右到左,所以要从高地址批向低地址
REP MOVSB
(3)把 CONAME 中的第三和第四個字節裝入 AX 的程序實現:
LEA SI ,[CONAME+3]
LODSW
(4)把 AX 寄存器的內容存入從 PRLINE+5 開始的字節中的程序實現:
LEA DI ,[PRLINE+5]
ADD DATAY,AX
MOV AX,[DATAX+2]
ADD [DATAY+2] ,AX
(3)本組指令的作用是:BX <------[DATAX]+[DATAY]+[1](CF 的值) 帶進位加法~
(4)MOV AX,DATAX
微信:332107782
MUL DATAY ;結果的高十六位保存在 DX 裏,低十六位保存在 AX 裏
MOV R,DX ;把余数 送到 R 中
(4)
MOV AX,W ;把 W 送到 AX 中
微信:332107782
SUB AX,X ;W-X
CWD
;把 AX 中的十六位带符号数扩展成为 32 位,低十六位保存在 AX 中,高
十六位保存在 DX 中
MOV BX,5 ;把 5 送到 BX 中
IDIV BX ;(W-X)/5 被除数为 32 位,除数为 16 位 商为 16 位
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