第 5 章 指令系统

111
1 第5第 指指指第第第第第第第第第 第第第第

Upload: rhett

Post on 13-Jan-2016

83 views

Category:

Documents


2 download

DESCRIPTION

第 5 章 指令系统. 第二部分. 计算机教学实验中心. 三、逻辑运算和移位类. 与 或 非 异或. 逻辑运算 移位操作. 逻辑移位 算术移位. 非循环移位 循环移位. 不带进位位的移位 带进位位的移位. 1. 逻辑运算. 逻辑运算指令对操作数的要求大多与 MOV 指令相同。 “ 非 ” 运算指令要求操作数不能是立即数; 除“非”运算指令外,其余指令的执行都会使标志位 OF=CF=0. “ 与”指令. 格式: AND OPRD1 , OPRD2 操作: 两操作数按位相 “ 与 ” ,结果送目标地 址. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 第 5 章 指令系统

1

第 5章指令系统

计算机教学实验中心

第二部分

Page 2: 第 5 章 指令系统

2

三、逻辑运算和移位类

逻辑运算

移位操作

与或非异或

非循环移位

循环移位

逻辑移位算术移位

不带进位位的移位带进位位的移位

Page 3: 第 5 章 指令系统

3

1. 逻辑运算 逻辑运算指令对操作数的要求大多与 MOV 指

令相同。“非”运算指令要求操作数不能是立即数;

除“非”运算指令外,其余指令的执行都会使标志位 OF=CF=0

Page 4: 第 5 章 指令系统

4

“与”指令 格式: AND OPRD1 , OPRD2 操作: 两操作数按位相“与”,结果送目标

地 址

Page 5: 第 5 章 指令系统

5

“与”指令的应用 实现两操作数相与的运算; 使目标操作数的某些位不变,某些位清零; 在操作数不变的情况下使 CF 和 OF 清零。

Page 6: 第 5 章 指令系统

6

“与”指令的应用 AND BL , [BX] AND AL , 0FH AND AX , AX

Page 7: 第 5 章 指令系统

7

“或”运算指令 格式: OR OPRD1 , OPRD2 操作: 两操作数按位相“或”,结果送目标 地址

Page 8: 第 5 章 指令系统

8

“或”运算指令的应用 实现两操作数相“或”的运算; 使某些位不变,某些位置“ 1” 在不改变操作数的情况下使 OF=CF=0

Page 9: 第 5 章 指令系统

9

应用程序例

OR AX , [DI]OR CL , 0FHOR AX , AX

OR AL , AL

JPE GOON

OR AL , 80H

GOON :… .

偶校验转移( PF=1 )

将一个二进制数 9变为字符‘ 9’

Page 10: 第 5 章 指令系统

10

“非”运算指令 格式: NOT OPRD 操作:操作数按位取反再送回原地址 指令中的操作数不能是立即数 指令的执行对标志位无影响 例: NOT BYTE PTR[BX]

Page 11: 第 5 章 指令系统

11

“异或”运算指令 格式: XOR OPRD1 , OPRD2 操作: 两操作数相“异或”,结果送目标 地址

两操作数自身相异或,结果

XOR AX , AX

Page 12: 第 5 章 指令系统

12

“测试”指令 格式: TEST OPRD1 , OPRD2 操作: 执行“与”运算,但运算的结果不 送回目标地址。 应用: 常用于测试某些位的状态

Page 13: 第 5 章 指令系统

13

“测试”指令例 从地址为 38F0H 的端口中读入一个字节数,

如果该数的 bit1 位为 1 ,则可从 38FEH 端口将 DATA 为首地址的一个字输出,否则就不能进行数据传送。

编写相应的程序段。

Page 14: 第 5 章 指令系统

14

“测试”指令例开 始

取待输出数的偏移地址

读入状态字

测试 bit1 位状态

Bit1=1 ?

取输入口地址取输出口地址

输出一个字

N

Y

Page 15: 第 5 章 指令系统

15

“测试”指令例 LEA SI , DATA MOV DX , 38F0HWATT : IN AL , DX TEST AL , 02H JZ WATT ; ZF=1 转移 MOV DX , 38FEH MOV AX , [SI] OUT DX , AX

Page 16: 第 5 章 指令系统

16

2. 移位指令 非循环移位指令 循环移位指令

注: 移动一位时由指令直接给出;移动两位及以上,

则移位次数由 CL 指定。

Page 17: 第 5 章 指令系统

17

非循环移位指令 逻辑左移 算术左移 逻辑右移 算术右移

Page 18: 第 5 章 指令系统

18

算术左移和逻辑左移 格式: SAL OPRD , 1 SAL OPRD , CL SHL OPRD , 1 SHL OPRD , CL

有符号数

无符号数

逻辑左移 移动一位后,若 CF 与最高不相等,则 OF=1

;否则 OF=0

Page 19: 第 5 章 指令系统

19

逻辑右移 格式: SHR OPRD , I SHR OPRD , CL

0 CF

无符号数的右移

移动一位后,若次高位与最高位不相等,则 OF=1 ;否则 OF=0

Page 20: 第 5 章 指令系统

20

算术右移 格式: SAR OPRD , I SAR OPRD , CL

有符号数的右移

CF

Page 21: 第 5 章 指令系统

21

非循环移位指令的应用 左移可实现乘法运算 右移可实现除法运算

见教材教材 p198p198 例例

Page 22: 第 5 章 指令系统

22

循环移位指令

不带进位位的循环移位

带进位位的循环移位

循环移位指令的格式、对操作数的要求与非循环移位指令相同

左移 ROL

右移 ROR

左移 RCL

右移 RCR

Page 23: 第 5 章 指令系统

23

不带进位位的循环移位

CF

CF

Page 24: 第 5 章 指令系统

24

带进位位的循环移位

CF

CF

Page 25: 第 5 章 指令系统

25

循环移位指令的应用 用于对某些位状态的测试; 高位部分和低位部分的交换; 与非循环移位指令一起组成 32 位或更长

字长数的移位。

Page 26: 第 5 章 指令系统

26

程序例 MOV SI,1000H MOV DI,3000H MOV CX,4BBB : MOV AL,[SI] MOV BL,AL AND AL,0FH

OR AL,30H MOV [DI],AL INC DI MOV AL,BL

PUSH CXMOV CL,4SHR AL,CLSHR AL,CLOR AL,30HOR AL,30HMOV [DI],ALMOV [DI],ALINC DIINC DIINC SIINC SIPOP CXPOP CXDEC CXDEC CXJNZ BBBJNZ BBBHLTHLT

程序功能?

Page 27: 第 5 章 指令系统

27

程序功能 将 1000H 开始存放

的四个压缩 BCD 码转换为 ASCII 码存放在 3000H 开始的单元中去。

12H

34H56H78H

1000H

3000H

Page 28: 第 5 章 指令系统

28

四、串操作指令 针对数据块或字符串的操作; 可实现存储器到存储器的数据传送; 待操作的数据串称为源串,目标地址称为

目标串。

Page 29: 第 5 章 指令系统

29

串操作指令的特点 源串一般存放在数据段,偏移地址由 SI 指定。

允许段重设; 目标串必须在附加段,偏移地址由 DI 指定; 指令自动修改地址指针,修改方向由 DF 决定。

DF=0 增地址方向; DF=1 减地址方向; 数据块长度值由 CX 指定; 可增加自动重复前缀以实现自动修改 CX内容。

Page 30: 第 5 章 指令系统

30

串操作指令流程

取源串地址

取目标串地址

设串长度

传送一个字节或字

修改地址指针

修改串长度值

传送完否?

Page 31: 第 5 章 指令系统

31

重复前缀 REP 无条件重复

REPE 相等重复 REPZ 为零重复 REPNE 不相等重复 REPNZ 不为零重复

条件重复

CX≠0ZF=1

CX≠0ZF=0

CX≠0 重复

Page 32: 第 5 章 指令系统

32

串操作指令 串传送 MOVS 串比较 CMPS 串扫描 SCAS 串装入 LODS 串送存 STOS

Page 33: 第 5 章 指令系统

33

串传送指令 格式: MOVS OPRD1 , OPRD2 MOVSB MOVSW

指令用于实现数据块的传送,常与无条件重复前缀连用。

Page 34: 第 5 章 指令系统

34

串传送指令 对比用 MOV 指令和 MOVS 指令实现将 20

0 个字节数据从内存的一个区域送到另一个区域的程序段。

Page 35: 第 5 章 指令系统

35

串传送指令例 用串传送指令实现 200 个字节数据的传送:

LEA SI , MEM1 LEA DI , MEM2 MOV CX , 200 CLD REP MOVSB HLT

Page 36: 第 5 章 指令系统

36

串比较指令 格式: CMPS OPRD1 , OPRD2 CMPSB CMPSW

该指令用于两个数据块或两个字符串之间的比较; 常与条件重复前缀连用,指令的执行不改变操作数,仅影响标志位。

Page 37: 第 5 章 指令系统

37

串比较指令例 测试上例中 200 个字节数据是否传送正确:

LEA SI , MEM1

LEA DI , MEM2

MOV CX , 200

CLD

REPE CMPSB

JZ STOP

DEC SI

MOV AL ,[SI]

MOV BX , SI

STOP : HLT

Page 38: 第 5 章 指令系统

38

串扫描指令 格式: SCAS OPRD SCASB SCASW

指令执行: AX (或 AL ) - OPRD 该指令常用于在某个区域中寻找关键字。

目 标操作数

Page 39: 第 5 章 指令系统

39

串装入指令 格式: LODS OPRD LODSB LODSW 操作:对字节: AL ([DS:SI]) 对 字: AX ([DS:SI])

源操作数

Page 40: 第 5 章 指令系统

40

串装入指令 用于将内存某个区域的数据串依次装入累加器,

以便显示或输出到接口。

LODS 指令一般不加重复前缀。

Page 41: 第 5 章 指令系统

41

串送存指令 格式: STOS OPRD STOSB STOSW 操作:对字节: AL ([ES:DI]) 对 字: AX ([ES:DI])

目 标操作数

Page 42: 第 5 章 指令系统

42

串送存指令的应用 将内存某个区域清零

区域首地址送 ES : DI

串长度送 CX

置方向标志 DF

0 送累加器 AL

执行串送存指令

开始

Page 43: 第 5 章 指令系统

43

五、程序控制指令 转移指令 循环控制 过程调用 中断控制

Page 44: 第 5 章 指令系统

44

1. 转移指令 无条件转移指令 无条件转移到目标地址,执行新的指令

有条件转移指令 在具备一定条件的情况下转移到目标地址

Page 45: 第 5 章 指令系统

45

转移指令的转移原理 通过修改代码段寄存器 CS 及指令指针 IP

的内容,使程序改变顺序执行的模式,转到新的目标地址执行。

Page 46: 第 5 章 指令系统

46

无条件转移指令 指令格式: JMP OPRD

无条件转移的目标地址可以是在当前代码段,也可在另一代码段

Page 47: 第 5 章 指令系统

47

无条件转移指令 段内转移——目标地址与 JMP 指令在同一代码段

转移方式:

直接转移——指令中直接给出转移的目标地址

间接转移——由指令中的寄存器或存储器间接给出转移

目标地址

Page 48: 第 5 章 指令系统

48

无条件段内转移 直接转移: JMP Lable

转移目标地址: 段基地址不变; 偏移地址 =当前 IP+位移量

JMP

Label

代码段

位移量

近地址标号

Page 49: 第 5 章 指令系统

49

无条件段内转移 间接转移: JMP BX JMP WORD PTR[BX]

JMP

代码段

数据段

BX=1200

XXH

XXH

IP

指令码

Page 50: 第 5 章 指令系统

50

无条件段间转移 直接转移: JMP FAR Lable

远地址标号

JMP

Label

代码段1

代码段2

XXH

XXH

XXH

XXH

IP

CS

Page 51: 第 5 章 指令系统

51

无条件段间转移 间接转移: JMP DWORD PTR[BX]

XXHXXHXXH

XXH

[BX]IP

CS

JMP

指令码

代码段1

代码段2

数据段

Page 52: 第 5 章 指令系统

52

条件转移指令 在满足一定的条件下,程序转移到目标地址继续执行;

在条件转移指令之前,应有一条为条件转移指令的执行形成条件的指令(如对标志位产生影响的指令);

条件转移指令均为段内短转移,即转移范围为: -128------+127

p206

Page 53: 第 5 章 指令系统

53

2. 循环控制指令 控制程序在以当前 IP 为中心的 -128~ +127范围内循环执行;

循环次数由 CX寄存器指定。

循环指令无条件循环指令 LOOP

条件循环指令 LOOPZ

LOOPNZ

Page 54: 第 5 章 指令系统

54

无条件循环指令 格式: LOOP Lable 循环条件: CX ≠ 0 LOOP 指令的操作相当于: DEC CX JNZ Lable

Page 55: 第 5 章 指令系统

55

条件循环指令 格式: LOOPZ Lable LOOPE Lable

循环条件: CX ≠ 0 ZF=1

格式: LOOPZ Lable LOOPE Lable

循环条件: CX ≠ 0 ZF=1

Page 56: 第 5 章 指令系统

56

3. 过程调用和返回

段内调用

段间调用

段内直接调用

段内间接调用

段间直接调用

段间间接调用

Page 57: 第 5 章 指令系统

57

调用指令与转移指令的比较 用于调用一个子过程; 调用前须保护断点地址; 子过程执行结束后要返回原调用处继续执行

原程序 —— 断点恢复。

Page 58: 第 5 章 指令系统

58

调用指令的执行过程 将调用指令的下一条指令的地址(断点)压入堆栈;

获取子过程的入口地址(子过程第 1条指令的偏移地址);

(执行子过程,含相应参数的保存及恢复); 将断点偏移地址由堆栈弹出,返回原程序。

Page 59: 第 5 章 指令系统

59

段内调用 子过程与原调用程序在同一代码段,在调

用之前只需保护断点的偏移地址 格式: CALL NEAR PROC

近过程名

断点

入口地址

Page 60: 第 5 章 指令系统

60

段内调用例 CALL TIMRE

CALL WORD PTR[SI]

直接调用

间接调用

Page 61: 第 5 章 指令系统

61

段间调用 子过程与原调用程序不在同一代码段,在调

用之前需保护断点的段基地址和偏移地址。 断点地址的保护是先将断点的 CS 压栈,再

将 IP 压入堆栈。 指令格式: CALL FAR PROC

Page 62: 第 5 章 指令系统

62

段间调用例 CALL FAR TIMRE

CALL DWORD PTR[SI]

Page 63: 第 5 章 指令系统

63

返回指令 从堆栈中弹出断点地址,返回原程序。 格式: RET RET 指令一般位于子程序的最后。

Page 64: 第 5 章 指令系统

64

4. 中断指令中断与过程调用: 中断是随机事件或异常事件引起,调用则是事先已在程序中安排好 ;

响应中断请求不仅要保护断点地址,还要保护FLAGS内容;

调用指令在指令中直接给出子程序入口地址,中断指令只给出中断向量码,入口地址则在向量码指向的内存单元中。

Page 65: 第 5 章 指令系统

65

中断指令 格式: INT n 说明: nх4 = 存放中断服务子程序入口地址的单元地址

中断类型码n=0 ~ 255

n х4 XXH

XXH

XXH

XXH

入口偏移地址 IP

入口段地址 CS

Page 66: 第 5 章 指令系统

66

中断指令操作:

将 FLAGS 压入堆栈; 将 INT 指令下一条指令的 CS 、 IP 压栈; 取中断服务程序入口地址。

Page 67: 第 5 章 指令系统

67

中断指令例 INT 21H

IPL

IPH

CSL

CSH

SP=1200

FLAGSL

FLAGSH

SP=11FA

执行 INT 指令后

保护断点

Page 68: 第 5 章 指令系统

68

中断指令例 执行 INT 21H 指令后 IP= ? CS= ? 21Hх4

=0084H 23H11H00H20H

IP

CS

Page 69: 第 5 章 指令系统

69

溢出中断指令 格式: INTO 若 OF=1,则启动一个类型为 4的中断过程 ,给

出一个出错标志 ,如果 OF=0,不做任何操作。 INTO 指令通常安排在有符号数加减运算指令之后。

相当于INT 4

Page 70: 第 5 章 指令系统

70

中断返回指令 格式: IRET 中断服务程序的最后一条指令,负责

恢复断点

恢复标志寄存器内容

Page 71: 第 5 章 指令系统

71

六、处理器控制指令

对标志位的操作与外部设备的同步

p213表 5-7

Page 72: 第 5 章 指令系统

72

§5.4 汇编语言源程序掌握:

汇编语言与汇编程序的概念; 汇编语言程序设计过程; 汇编语言源程序的结构框架; 常用伪指令及基本 DOS 功能模块的应用。

Page 73: 第 5 章 指令系统

73

一、 80X86新增指令特点: 增加对 32 位字长操作的指令; 加强各类指令功能; 增加了高级语言、控制保护、 Cache 管理

等指令。

Page 74: 第 5 章 指令系统

74

二、汇编语言及汇编程序 计算机语言:

机器语言汇编语言高级语言

面向机器 的语言

机器语言 汇编语言 高级语言

Page 75: 第 5 章 指令系统

75

汇编语言及汇编程序 汇编语言源程序 用助记符编写的程序

源程序的编译程序

汇编程序汇编语言源程序

机器语言目标程序

Page 76: 第 5 章 指令系统

76

汇编语言程序设计与执行过程

输入汇编语言源程序 源文件 .ASM 汇编(编译) 目标文件 .OBJ 链接 可执行文件 .EXE 调试 最终程序

Page 77: 第 5 章 指令系统

77

汇编语言的语句格式 指令性语句 —— 由 CPU 执行的指令 语句格式:

[ 标号: ] [ 前缀 ] 助记符 [ 操作数 ] , [ 操作数 ] [ ;注释 ]

指令的符号地址,标号后要有冒号 操作码 注释前加分号

Page 78: 第 5 章 指令系统

78

汇编语言的语句格式 指示性语句 : CPU 不执行的指令,不生成目标代码; 由汇编程序执行,用于分配内存空间、定义变量、指示程序开始和结束等。

指令格式:

[名字 ] 伪指令助记符 操作数 [ ,操作数,… ] [ ;注释 ]

变量的符号地址其后不加冒号

指示性语句中至少有一个操作数

Page 79: 第 5 章 指令系统

79

操作数 常量 —— 数值或字符、字符串

寄存器 存储器单元 变量或标号 表达式 —— 可包括各种运算符

Page 80: 第 5 章 指令系统

80

变量 代表内存中的数据区,程序中视为存储器

操作数 变量的属性: 段 值 —— 变量所在段的段地址 偏移量 —— 变量单元地址与段首地址之 间的位移量。 类 型 —— 字节型、字型和双字型

Page 81: 第 5 章 指令系统

81

三、基本伪指令 数据定义伪指令 符号定义伪指令 段定义伪指令 设定段寄存器伪指令 结束伪指令 * 过程定义伪指令 * 宏命令伪指令

Page 82: 第 5 章 指令系统

82

数据定义伪指令 用于定义数据区中变量的类型

格式:

[ 变量名 ] 伪指令助记符 操作数, [… ] [ ;注释 ]

Page 83: 第 5 章 指令系统

83

数据定义伪指令伪指令助记符 DB 定义的变量为字节型 DW 定义的变量为字类型(双字节) DD 定义的变量为双字型( 4字节) DQ 定义的变量为 4字型( 8 字节) DT 定义的变量为 10 字节型

Page 84: 第 5 章 指令系统

84

数据定义伪指令 DATA1 DB 11H , 22H , 33H , 44H

DATA2 DW 11H , 22H , 3344H

DATA3 DD

11H*2 , 22H , 33445566H

考虑以上变量在内存中的存放形式

Page 85: 第 5 章 指令系统

85

数据定义伪指令 伪指令的性质决定所定义变量的属性; 定义字符串必须用 DB伪指令 例: DATA1 DB ‘ABCD’, 66H ‘A’

‘B’‘C’‘D’

41H42H43H44H66H

Page 86: 第 5 章 指令系统

86

重复操作符 为一个数据区的各单元设置相同的初值 格式: [ 变量名 ] 伪指令助记符 n DUP (初值,…)

例: BW 20 DUP ( 0 ) DB 3 DUP ( 22H , 11H ,?)

随机数

Page 87: 第 5 章 指令系统

87

符号定义伪指令 格式: 符号名 EQU 表达式 操作: 用符号名取代后边的表达式,不可重新定义 例: CONSTANT EQU 100 VAR EQU 30H+99H

EQU说明的表达式不占用内存空间

Page 88: 第 5 章 指令系统

88

段定义伪指令

说明逻辑段的起始和结束; 说明不同程序模块中同类逻辑段之间的联系形态

Page 89: 第 5 章 指令系统

89

段定义伪指令

段名 SEGMENT [ 定位类型 ] [ 组合类型 ] [’ 类’别 ]

段名 ENDS说明逻辑段的起点

说明不同模块中同名段的组和连接方式

Page 90: 第 5 章 指令系统

90

段定义伪指令例

DATA SEGMENT

MEM1 DB 11H , 22H

MEM2 DW 1234H

DATA ENDS

Page 91: 第 5 章 指令系统

91

设定段寄存器伪指令 说明所定义逻辑段的性质 格式 ASSUME 段寄存器名:段名 [ ,段寄存器名:段名,… ]

Page 92: 第 5 章 指令系统

92

结束伪指令 表示源程序结束 格式: END [ 标号 ]

Page 93: 第 5 章 指令系统

93

一个完整源程序结构例DSEG SEGMENT

DATA1 DB 1 , 2 ,DATA2 DW 1234H

DSEG ENDS

ESEG SEGMENT

DB 20 DUP (?)ESEG ENDS

SSEG SEGMENT

DB 200 DUP (?)SSEG ENDS

Page 94: 第 5 章 指令系统

94

一个完整源程序结构例CSEG SEGMENT ASSUME CS : CSEG , DS :

DSEG , ES : ESEG , SS : SSEG START : MOV AX , DSEG MOV DS , AX MOV AX , ESEG MOV ES , AX MOV AX , SSEG MOV SS , AX ┇ CSEG ENDS END START

源程序 代码

Page 95: 第 5 章 指令系统

95

过程定义伪指令 用于定义一个过程体

格式: 过程名 PROC [ NEAR / FAR ] ┇ RET 过程名 ENDP

过程入口的符号地址

Page 96: 第 5 章 指令系统

96

宏命令伪指令 宏命令——源程序中由汇编程序识别的具有 独立功能的一段程序代码 格式: 宏命令名 MACRO <形式参数 > ┇ ┇ ENDM

宏体

Page 97: 第 5 章 指令系统

97

四、 DOS 功能模块 用 INT 21H 软中断指令,可调用包含多个子功能的功能包;

各子功能采用功能号来区分; 功能包括:设备管理、目录目录管理、文件管管理、文件管

理等理等。。

Page 98: 第 5 章 指令系统

98

DOS 功能模块调用格式 调用格式: MOV AH ,功能号 <置相应参数 > INT 21H

Page 99: 第 5 章 指令系统

99

常用子功能 从键盘输入单字符并显示; 从键盘输入字符串并显示; 在屏幕上显示单字符; 在屏幕上显示字符串。

Page 100: 第 5 章 指令系统

100

从键盘输入单字符并显示 调用方法:

MOV AH , 01 INT 21H 输入的字符在 AL 中

Page 101: 第 5 章 指令系统

101

单字符输入例GET_KEY: MOV AH,1

INT 21H

CMP AL,’Y’

JZ YES

CMP AL,’N’

JZ NO

JNZ GET_KEY

YES: ┇ NO: ┇

交互式应 答程序

Page 102: 第 5 章 指令系统

102

从键盘输入字符串 AH 功能号 OAH DS : DX 字符串在内存中的存放地址 INT 21H

Page 103: 第 5 章 指令系统

103

定义字符缓冲区 用户自定义缓冲区格式:

0DHN1 N2

整个缓冲区

最大键入字符数

实际键入字符数

Page 104: 第 5 章 指令系统

104

输入字符串程序段 DAT1 DB 20 ,?, 20 DUP

(?)

LEA DX , DAT1 MOV AH , 0AH INT 21H

Page 105: 第 5 章 指令系统

105

输入缓冲区

14H ?

20 个字节

定义后的输入缓冲区初始状态:

Page 106: 第 5 章 指令系统

106

单字符显示输出 AH 功能号 O2H DL 待输出字符 INT 21H

Page 107: 第 5 章 指令系统

107

单字符显示输出例 MOV AH , 02 MOV DL , 41H INT 21H

执行结果:屏幕显示字符 ‘ A’

Page 108: 第 5 章 指令系统

108

字符串输出显示 AH 功能号 O9H DS : DX 待输出字符串的偏移地址 INT 21H

Page 109: 第 5 章 指令系统

109

字符串输出显示例DATA SEGMENT

MESS1 DB ‘Input String:’ 0DH , 0AH,’$’

DATA ENDS

CODE SEGMENT

MOV AH , 09

MOV DX , OFFSET MESS1

INT 21H

被显示的字符串必须以‘ $’

结束

Page 110: 第 5 章 指令系统

110

结束语 了解指令性语句及指示性语句的格式; 了解操作数的类型及变量的属性; 掌握 8086CPU 指令系统的寻址方式; 掌握 8086CPU 指令系统6大类指令的功能; 掌握基本伪指令及主要 DOS 功能模块的应用; 掌握汇编语言源程序的结构框架; 理解汇编语言程序设计的一般过程; 具备编写简单汇编语言源程序的能力。

Page 111: 第 5 章 指令系统

111

作业: 5.2 5.4 5.7 5.8 5.9 5.11 5.15 5.16 5.19