IBM-PC汇编语言程序设计第二版第2章

合集下载

IBM-PC汇编语言程序设计第二版第2章

IBM-PC汇编语言程序设计第二版第2章

优点: 允许程序在存储器内重定位; 允许实模式程序在保护模式下运行; 有利于程序和数据的分离。
物理地址 = 16 段地址 + 偏移地址
16 位 段 地 址
0000
16 位 偏 移 地 址
+
20 位 物 理 地 址
例:(DS) = 2100H, (BX) = 0500H (PA) = 21000H+0500H = 21500H
CS 0150H DS 4200H SS 1CD0H ES B000H
存储器
01500H
64KB代码
1CD00H
64KB堆栈
42000H
64KB数据
B0000H
64KB附加数据
CS 0200H DS 0400H SS 0480H
存储器
02000H 8KB代码
04000H 2KB数据 256堆栈 04800H
存储器的逻辑地址与物理地址
逻辑地址
物理地址
段地址 : 偏移地址
1000 : 0000H
1000 : 0001H 1000 : 0002H 1000 : 0003H
1000 : 0004H 1000 : 0005H
10011111 00100110 01001000
10000011 01011100 10100010
VIP:虚拟中断未决标志 VIF:虚拟中断标志 VM:虚拟8086模式位
保护模式下的80x86
支持多任务处理功能 支持虚拟存储器特性
存储器
段基地址32
逻辑地址
选择器 16
偏移地址 32
所选存储单元
所选段
描 述 符64
描述符表
保护模式下的存储器寻址

《IBM-PC汇编语言程序设计》教案及答案(第二版)

《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汇编语言程序设计(第二版)课后习题答案(清华大学出版社)

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

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

IBM-PC汇编语言程序设计(第二版)课后习题标准答案(清华大学出版社)解析

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.根据下列要求,写出相应的汇编指令。

汇编语言程序设计(第二版)第二章

汇编语言程序设计(第二版)第二章

教学提示
全面而准确地理解每条指 令的功能和应用, 令的功能和应用,是编写 汇编语言程序的关键
第2章
2.1 数据传送类指令
数据传送是计算机中最基本, 数据传送是计算机中最基本,最重要的一种 操作 传送指令也是最常使用的一类指令 传送指令把数据从一个位置传送到另一个位 置 除标志寄存器传送指令外,均不影响标志位 除标志寄存器传送指令外, 不影响标志位 重点掌握 MOV XCHG PUSH POP LEA
第2章
1. 标志寄存器传送
标志寄存器传送指令用来传送标志寄存 的内容, 器 FLAGS的内容 , 方便进行对各个标 的内容 志位的直接操作 有2对4条指令 对 条指令
LIFO
FIFO
第2章
堆栈的操作
堆栈只有两种基本操作:进栈和出栈, 堆栈只有两种基本操作:进栈和出栈, 对应两条指令PUSH和POP 对应两条指令 和 PUSH
; 进栈指令先使堆栈指 针 SP减 2, 然后把一个字操作数 减 , 存入堆栈顶部 ; 出栈指令把栈顶的一 个字传送至指定的目的操作数, 个字传送至指定的目的操作数 , 然后堆栈指针SP加 然后堆栈指针 加2
整数指令 浮点指令 多媒体指令
第2章
8086指令系统概述
8086指令系统共有117条基本指令 指令系统共有117 Intel 8086指令系统共有117条基本指令 可分成6 可分成6个功能组
① ② ③ ④ ⑤ ⑥ 数据传送类指令 算术运算类指令 位操作类指令 串操作类指令 控制转移类指令 处理机控制类指令
MOV并非任意传送 并非任意传送
第2章
非法传送种种
示例
两个操作数的类型不一致
例如源操作数是字节,而目的操作数是字; 例如源操作数是字节,而目的操作数是字; 或相反

汇编语言程序设计(第二版)第2章

汇编语言程序设计(第二版)第2章

通过内部总线送来,运算结果一方面通过内部总线送到某个
寄存器或者送往片外,另一方面运算结果的特征还送往标志 寄存器。
第2章 微型计算机的内部结构
具体地说,8086/8088的运算器可以完成以下操作:
(1) 加减法。两个字节型数据相加减,或者两个字型数据 相加减,计算结果的类型与操作数类型相同。
(2) 乘法。两个字节型数据相乘,得到字型的乘积;或者 两个字型数据相乘,得到双字型的乘积。
第2章 微型计算机的内部结构
2.内部控制系统 这是CPU中控制器的一部分。计算机的任何动作都是在一 定的信号控制之下完成的,CPU内部控制系统就担负着产生有 关运算器、通用寄存器组、标志寄存器等内部部件的控制信号
的任务,并且还要保证这些信号保持足够长的有效时间,以及
安排信号在时间上的先后关系。内部控制系统总是根据当前指 令去产生相应的控制信号。
第2章 微型计算机的内部结构
2.控制标志位
(1) TF——单步中断允许标志,又称跟踪标志。表示系统 当前是否允许单步中断。 (2) IF——外中断屏蔽标志。表示系统当前是否允许可屏 蔽外中断。
(3) DF——方向标志。表示串操作按增量方向还是按减量 方向进行。
这三个标志位与8086/8088的运行状态密切相关,TF和IF 涉及中断系统,将在第8章中介绍,DF影响串操作指令的执行 方式,将在第7章中加以说明。
第2章 微型计算机的内部结构
2.2.2 通用寄存器组 寄存器是CPU内部临时存放数据的部件,它的存取速度比
内存更快,可以把数据通过内部总线送往运算器进行运算,或
者接收来自运算器的结果。充分利用CPU的内部寄存器可以加 快程序的执行速度。8086/8088有8个16位的字型通用寄存器, 各个寄存器都有自己特定的功能,特定的指令可以使用这些功 能,而不执行特定指令时,这些寄存器都可以用来临时存放数

IBM-PC汇编语言程序设计答案

IBM-PC汇编语言程序设计答案

附录:《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位二进制补码计算下列各题,并用十六进制数表示其运算结果。

(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+0100 1100B=11110111B=0F7H;CF=0;OF=0 1.6下列各数为十六进制表示的8位二进制数,请说明当它们分别被看作是用补码表示的带符号数或无符号数时,它们所表示的十进制数是什么?(1) D8 (2) FF答:(1) D8H表示的带符号数为-40,D8H表示的无符号数为216;(2) FFH表示的带符号数为-1,FFH表示的无符号数为255。

IBMPC汇编语言课后复习题答案(第二版)

IBMPC汇编语言课后复习题答案(第二版)

(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
(2) MOV BX, OFFSET BLOCK MOV DX, [BX+(6 – 1) * 2]
(3) MOV BX, OFFSET BLOCK MOV SI, (6 – 1) * 2 MOV DX, [BX][SI]
改为: MOV BX, (6-1)*2
也可
MOV DX, BLOCK[BX]
; CF=0;
OF=0
1.6 下列各数为十六进制表示的 8 位二进制数,请说明当它们分别被看作是用补码表示的带符号数或
无符号数时,它们所表示的十进制数是什么?
(1) D8
(2) FF
答: (1) D8H 表示的带符号数为 -40 , D8H表示的无符号数为 216;
(2) FFH 表示的带符号数为 -1 , FFH 表示的无符号数为 255。
(3) 73H 表示的十进制数为 115, 73H表示的字符为 s;
(4) 59H 表示的十进制数为 89, 59H表示的字符为 Y。
1.8 请写出下列字符串的 ASCII 码值。 For example,
.专业 .专注 .
This is a number 3692. 答: 46H 6FH 72H 20H 65H 78H 61H 6DH 70H 6CH 65H 2CH 0AH 0DH
(5) (-85)-76=1010 1011B-0100 1100B=1010 1011B+1011 0100B=0101 1111B=5FH; CF=0; OF=1
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(64KB)
小段:每16个字节为一小段,共有64K个小段
小段的首地址 00000 H ~ 0000F H 00010 H ~ 0001F H 00020 H ~ 0002F H … FFFF0 H ~ FFFFF H
段起始地址:小段首地址 段的大小: 64K 范围内的任意字节
存储器的逻辑分段:
段寄存器
存储器的逻辑地址与物理地址
逻辑地址
物理地址
段地址 : 偏移地址
1000 : 0000H
1000 : 0001H 1000 : 0002H 1000 : 0003H
1000 : 0004H 1000 : 0005H
10011111 00100110 01001000
10000011 01011100 10100010
数据寄存器:存放外设和主机间传送的数据 状态寄存器:保存外设或接口的状态信息 命令寄存器:保存CPU发给外设或接口的控制命令
外设中每个寄存器有一个端口(Port)地址,构成 一个独立于内存的 I / O 地址空间:0000H ~ FFFFH
80x86的寄存器结构
31EAΒιβλιοθήκη EBX ECX EDX ESP EBP ESI EDI
16 15
87
AH AX AL
BH BX BL
CH CX CL
DH DX DL
SP
BP
SI
DI
EIP EFLAGS
IP FLAGS
CS
DS
80x86的程序可见寄存器组
SS ES
通用寄存器
FS
专用寄存器
GS
段寄存器
0
8086 / 8088 / 80286
寄 存 器
80x86的标志寄存器 (P.23)
优点: 允许程序在存储器内重定位; 允许实模式程序在保护模式下运行; 有利于程序和数据的分离。
物理地址 = 16 段地址 + 偏移地址
16 位 段 地 址
0000
16 位 偏 移 地 址
+
20 位 物 理 地 址
例:(DS) = 2100H, (BX) = 0500H (PA) = 21000H+0500H = 21500H
第2章 80x86计算机组织
计算机系统 存储器 中央处理机 外部设备
1. 计算机系统
硬件:
中央处理机 CPU
总线控制 逻辑 系 统 总 线
存储器
接口
...
接口
大容量 存储器
...
I/O设备
I/O子系统
软件:系统软件 用户软件
2. 存储器
存储单元的地址和内容:
存储器以字节(8 bit)为编程单位 每个字节单元都有唯一的地址编码 地址用无符号整数来表示(编程用十六进制表示) 一个字要占用相继的两个字节 低位字节存入低地址,高位字节存入高地址 字单元地址用它的低地址来表示 机器以偶地址访问(读 / 写)存储器
VIP:虚拟中断未决标志 VIF:虚拟中断标志 VM:虚拟8086模式位
保护模式下的80x86
支持多任务处理功能 支持虚拟存储器特性
存储器
段基地址32
逻辑地址
选择器 16
偏移地址 32
所选存储单元
所选段
描 述 符64
描述符表
保护模式下的存储器寻址
第2章作业
Page 33 2.1 ~ 2.5
寄存器与存储器的比较:
寄存器
在CPU内部 访问速度快 容量小,成本高 用名字表示 没有地址
存储器
在CPU外部 访问速度慢 容量大,成本低 用地址表示 地址可用各种方式形成
4. 外部设备
外部设备与主机( CPU 和存储器)的通信是 通过外设接口(Interface)进行的,每个接口包括 一组寄存器。
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
OF DF IF TF SF ZF AF PF CF
条件码标志:
OF 溢出标志 SF 符号标志 ZF 零标志 CF 进位标志 AF 辅助进位标志 PF 奇偶标志
控制标志:
DF 方向标志 IF 中断标志 TF 陷阱标志
例:ADD AX, BX JO / JC ERROR ?
3. 中央处理器
CPU组成:算术逻辑部件ALU、 控制器、寄存器
8086/8088寄存器组:
数据寄存器:
高8位
AX
AH
BX
BH
CX
CH
DX
DH
低8位 AL BL CL DL
指针及变址寄存器:SP、BP、SI、DI
段寄存器:
CS、DS、SS、ES
控制寄存器:
IP、FLAGS
标志寄存器 ( FLAGS / PSW )
CS 0150H DS 4200H SS 1CD0H ES B000H
存储器
01500H
64KB代码
1CD00H
64KB堆栈
42000H
64KB数据
B0000H
64KB附加数据
CS 0200H DS 0400H SS 0480H
存储器
02000H 8KB代码
04000H 2KB数据 256堆栈 04800H
Pentium
ID VIP VIF AC VM RF NT IOPL OF DF IF TF SF ZF AF PF CF
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
IOPL: I/O特权级 NT: 嵌套任务标志 RF: 重新启动标志 AC: 对准检查方式位 ID: 标识标志
10000H 10001H 10002H 10003H 10004H 10005H
字节内容(10000H)=9FH;(10001H)=26H
字内容 (10000H)=269FH;(10001H)=4826H
访问两次内存
存储器的分段:
20 根地址线: 地址范围 00000H ~ FFFFFH (1MB) 机器字长16位:仅能表示地址范围 0000H ~ FFFFH
VM RF
OF DF IF TF SF ZF NT IOPL OF DF IF TF SF ZF NT IOPL OF DF IF TF SF ZF
8086/8088
AF PF CF
80286
AF PF CF
80386
AF PF CF
80486
AC VM RF NT IOPL OF DF IF TF SF ZF AF PF CF
相关文档
最新文档