74
微微微微 微微微微微

微机原理

  • Upload
    agalia

  • View
    74

  • Download
    0

Embed Size (px)

DESCRIPTION

在此幻灯片插入公司的徽标 从“插入”菜单 选择图片 找到徽标文件 单击“确定” 重新设置徽标大小 单击徽标内任意位置。徽标外部出现的方框是“调整控点” 使用这些重新设置对象大小 如果在使用尺寸调整控点前按下 shift 键,则对象改变大小但维持原比例。. 微机原理. 制作者: 张幸. 第三章 8086寻址和指令系统. 8086指令系统具有灵活的指令格式、很强 的寻址能力、能处理多种数据类型 本章讨论8086寻址能力 ,指令系统. 第一节 8086寻址方式. 一、基本概念 二、指令寻址方式. 一、基本概念. 1. 指令 机器指令 - PowerPoint PPT Presentation

Citation preview

Page 1: 微机原理

微机原理

制作者: 张幸

Page 2: 微机原理

第三章 8086 寻址和指令系统8086 指令系统具有灵活的指令格式、很强的寻址能力、能处理多种数据类型本章讨论 8086 寻址能力 ,指令系统

Page 3: 微机原理

第一节 8086 寻址方式

一、基本概念二、指令寻址方式

Page 4: 微机原理

一、基本概念

1. 指令 机器指令

以二进制代码(机器码)表示指令直接,不易读懂

汇编指令以符号形式表示指令易读,需要翻译(汇编)

Page 5: 微机原理

2. 指令成分 操作码:操作的性质

表示指令应完成的具体操作以助记符的形式表示

操作数:操作的对象

Page 6: 微机原理

3. 指令操作数 双操作数

OPR DEST , SRC 单操作数

OPR DEST 无操作数

OPR (隐含操作数)

Page 7: 微机原理

二、指令寻址方式

寻址方式: CPU 寻找操作数或送操作结果的方式。

操作数就在指令中操作数在 CPU 的 Register 中操作数在 Memory 中

操作数可能存放的场所

Page 8: 微机原理

8086 的寻址方法有:立即寻址、存储器寻址、串操作寻址I/O 端口寻址、程序转移寻址

Page 9: 微机原理

1. 立即寻址:指令中直接给出操作数的数值。如: MOV AL , 26H MOV CX , 2A50H立即寻址速度快,一般用于给寄存器或存储器赋初值

Page 10: 微机原理

2. 寄存器寻址:操作数存放在指令规定的寄存器中。 如: MOV DX , AX

寄存器寻址机器码字节最短,执行速度最快

Page 11: 微机原理

3. 直接寻址:指令直接给出操作数的偏移地址。(存储器寻址方式) 直接寻址方式: MOV AX , [2000H] 段超越前缀: MOV AX , ES : [500] 符号地址: AREA1 DW 100

MOV AX , AREA1

Page 12: 微机原理

4. 寄存器间接寻址:操作数的有效地址 EA

存放在基址或变址寄存器。

MOV AX , [SI] (DS):(SI)→AXMOV AX , [BP] (SS):(BP)→AX

(BX) (SI) 段寄存器 DS ( 即操作数在数据段 )

(DI) (BP) 段寄存器 SS ( 即操作数在堆栈段 )

EA =

Page 13: 微机原理

5. 寄存器相对寻址:操作数的有效地址 EA

是8 位或 16 位的偏移量加基址或变址寄存器

如: MOV BX , COUNT[SI]

(BX) (SI) 段寄存器 DS( 即操作数在数据段 )

(DI) (BP) 段寄存器 SS ( 即操作数在堆

栈段 )

EA =+disp

+disp

注:偏移量可以是负数

Page 14: 微机原理

6. 基址变址寻址:操作数的有效地址 EA 是基址存器( BX 或 BP )加变址寄存器( SI 或 DI )。

( BX ) ( SI ) ( BP ) ( DI )

+BX 默认段 DS

BP 默认段 SS

如: MOV AX , [BX][SI]

MOV AX , [BX+SI]

EA=

Page 15: 微机原理

7. 相对基址变址寻址:操作数的有效地址 EA 是 8

位或 16 位的偏移量加基址寄存器( BX 或 BP )和变址寄存器( SI 或 DI )。

如: MOV AX , MASK[BX][SI]

MOV AX , [MASK+BX+SI]

( BX ) ( SI ) 8 位偏移量 ( BP ) ( DI ) 16 为偏移量

+BX 默认段 DS

BP 默认段 SS+EA=

Page 16: 微机原理

其它: 隐含寻址 I/O 端口寻址 一条指令几种寻址方式 转移类寻址

Page 17: 微机原理

8.I/O 端口寻址 直接端口寻址:指令中直接给出外设端口地址 如: IN AL , 63H OUT 64H , AL 间接端口寻址:指令 DX 寄存器为外设端口地址 如: MOV DX , 213H IN AL , DX注: 直接端口寻址范围( 0~FFH ) 间接端口寻址范围( 0~FFFFH )

Page 18: 微机原理

转移指令寻址方式 段内直接寻址 立即短转移 JMP SHORT PROG_S (8 位

立即数 ) 立即近转移 JMP NEAR PTR PRON_N ( 16

位立即数) 段内间接寻址 以存储器或寄存器作为转移目标

地址 寄存器: JMP BX 存储器: JMP WORD PTR [BX] 段间直接寻址 JMP FAR PTR PROG

_F 段间间接寻址 JMP DWORD PTR[BX]

Page 19: 微机原理

第二节 8086 指令系统 指令系统是汇编语言程序设计基础 汇编语言不如高级语言容易掌握 学习要点:功能、寻址方式、对 PSW 影响 8086 指令系统分 6 类:数据传送、算术

运算、逻辑和移位、字符串处理、转移类指令、处理机控制类。

Page 20: 微机原理

一、数据传送指令

1 、通用传送指令指令名称 操作码 操作数 例

传送字或字节 MOV 目标,源 MOV ARRAY[SI] , AL把字压入堆栈 PUSH 源 PUSH AX

把字弹出堆栈 POP 目标 POP AX

交换字节或字 XCHG 目标,源 XCHG AX , BX

字节翻译 XLAT 译码表 XLAT ASCII-TAB

Page 21: 微机原理

MOV 指令完成把 1 字节或 1 字内容从源操作数

传送到目的操作数•立即数不能做目的操作数•无存储器间直接传送•不能给 CS 、 IP 直接赋值•不能用立即数对段寄存器赋值

立即数

存储

段寄存器

通用寄

存器

格式: MOV 目标,源

Page 22: 微机原理

例: MOV AL ‘, B’

MOV DX , OFFSET ARRAY MOV AL , AREA1 MOV AREA2 , AL

AREA1

AREA2

ARRAY

143B

00

00

00

00

Page 23: 微机原理

PUSH 进栈指令

若 BX=2500H

DS=2130H

SP=0040H

SS=2000H

执行 PUSH BX

PUSH DS

2000 : 0000

30 21 00 25

2000 : 0040

栈底

减1SP

•源操作数可以是通用寄存器、段寄存器、存储器。•压栈时必须是字•先压高字节、再压低字节,且 SP 减 1

格式: PUSH 源

执行后 SP=003CH

Page 24: 微机原理

POP 出栈指令若: SP=003CH

SS=2000H

执行 POP DS

POP BX

•目的操作数可以是通用寄存器、段寄存器、存储器。•弹栈时必须是字•先弹低字节、再弹高字节,且 SP 加 1

2000 : 0000

30 21 00 25

2000 : 0040

栈底

加1SP

2000 : 003C

执行后 SP=0040HDS=2130HBX=2500H

格式: POP 目的

Page 25: 微机原理

XCHG 交换指令 格式: XCHG 目的,源 例: XCHG AX , [BX+200H]

若: AX=2000H , DS=3000H BX=1800H ,( 31A00H ) =1995H 。 执行后: AX=1995H ( 31A00H ) =2000H

注:源、目的可以是寄存器,可以是存储器,但不能都是存储器

Page 26: 微机原理

XLAT 指令 格式: XLAT 或 XLAT 表该指令采用隐含寻址表有效地址 EA=BX+AL ,查表后内容送 AL 例:把 0~9 的十进制数转换成七段码

TABLE DB 40H , 79H , 24H , 30H , 19H DB 12H , 02H , 78H , 00H , 18H MOV AL , 5 MOV BX , OFFSET TABLE XLAT TABLE

Page 27: 微机原理

2 、输入 / 输出指令 IN 累加器,端口 OUT 端口,累加器如果端口地址在 0000H~00FFH ,可用直接或间接寻址如果端口地址不在 0000H~00FFH ,只能用间接寻址

IN AX , 21H (直接)MOV DX , 210H (间接)IN AL , DX

IN AL , 210H ()

Page 28: 微机原理

名称 操作码 操作数 举例 装入有效地址 LEA 目,源 LEA BX , [DI]指针装入 DS LDS 目,源 LDS BX , TABLE[SI]指针装入 ES LES 目,源 LES DI , ARRAY[BX]

例: 若: DI=0100H , DS=2000H ,

( 20106H ) =1234H ,( 20108H ) =5678H

则: LEA BX , 6[DI] BX=0106H

LDS BX , 6[DI] BX=1234H DS=5678H

3 、地址目标传送指令

这三条指令用于传送地址码,源操作数必须是存储器,

目的操作数除段寄存器的 16 位寄存器。

Page 29: 微机原理

4 、标志传送指令LAHF 标志装入 AH

将标志 SF , ZF , AF , PF , CF 送 AH 的 7 , 6 , 4 , 2 ,0

SAHF AH 内容装入标志 将 AH 的 7 , 6 , 4 , 2 , 0 送标志 SF , ZF , AF , PF , CF

PUSHF 压标志POPF 弹标志

Page 30: 微机原理

传送指令对标志影响: 除 POPF SAHF 两条指令,其余指令均不

影 响标志

Page 31: 微机原理

二、算术运算指令 8086 算术运算指令共有 20 条,分 4 组 8086 的 4 组指令为加法、减法、乘法、除法 8086 可处理四种类型的数:无符号、带符号、

压缩 BCD 码、非压缩 BCD 码8086 四种类型数的解释 二进制 十六进制 无符号数 带符号数 非压缩 BCD 压缩 BCD 00000111 07 7 7 7 7 10001001 89 137 -119 无效 89 11000101 C5 197 -59 无效 无效

Page 32: 微机原理

1 、加法指令 ADD 目的,源 目的源 + 目的 ADC 目的,源 目的源 + 目的 +CF INC 目的 目的目的 +1 AAA DAA

说明:源操作数为立即数、通用寄存器、存储器 目的操作数为通用寄存器、存储器 源、目不能都是存储器 算术运算指令影响标志

Page 33: 微机原理

例: ADD AL , 18H ADC BL , AL ADC AX , DX ADD AL , COST[BX] INC BL INC CX INC BYTE PTR[BX] INC WORD PTR[BX]

Page 34: 微机原理

DAA 加法的十进制调整指令,适用压缩 BCD 码调整原则: 若 AL 低 4 位 >9 或 AF=1 则 ALAL+6 ,进行低字节调整 若 AL 高 4 位 >9 或 CF=1 则 ALAL+60H ,进行高字节调整,使 CF=1例 1 、 AL=38 ( BCD ) BL=15 ( BCD ),求两数之和 ADD AL , BL ; AL=4BH DAA ; AL=53H ( BCD ) CF 0例 2 、 AL=88 ( BCD ) BL=49 ( BCD ),求两数之和 ADD AL , BL ; AL=0D1H DAA ; AL=37H , CF=1

Page 35: 微机原理

使用 AAA 、 DAA 指令注意:仅对 AL 调整,运算必须是字节,且结果存在 AL

中参加运算的数必须合法,即压缩或非压缩 BCD 码紧跟在 ADD 、 ADC 、 INC 指令后面

Page 36: 微机原理

2 、减法指令 SUB 目的,源 目的目的 - 源 SBB 目的,源 目的目的 - 源 -CF DEC 目的 目的目的 -1 NEG 目的 目的 0- 目的 CMP 目的,源 源 - 目的 AAS DAS

说明:源操作数为立即数、通用寄存器、存储器 目的 通用寄存器、存储器 源、目不能都是存储器 算术运算指令影响标志

Page 37: 微机原理

3 、乘法指令

说明: * 乘法指令只给出一个源操作数,另一源操作数, 目的操作数采用隐含寻址 * 乘法指令可字节与字节乘,可字与字乘 字节乘 : AX AL* 源 字乘: DX AX AX* 源 * 源操作数可选寄存器、存储器(说明字还是字节) * 乘法影响标志 CF , OF

采用字节乘还是字乘取决于原操作数

MUL 源IMUL 源AAM

Page 38: 微机原理

例 1 : MUL DL MUL CX MUL BYTE PTR[SI] MUL WORD PTR[BX]

例 2 : AL=55H , BL=14H MUL BL 执行后 AX=06A4H CF=1 , OF=1

例 3 : AL=-28H , BL=59H IMUL BL 执行后AX=F98CH , CF=1 , OF=1

Page 39: 微机原理

乘法的 ASCII 调整:AAM 把 AL/10商在 AH ,余数在 AL例: MOV AL , 09H MOV BL , 06H MUL BL ; AL=36H AAM ; AH=05H , AL=04H

Page 40: 微机原理

4 、除法指令 CBW

CWD

说明: * 除法指令只给出一个源操作数,另一源操作数, 目的操作数采用隐含寻址 * 除法可完成字节或字除,取决于源操作数 * 字节除 商 AL ,余数 AH AX/ 源(字节) 字除 商 AX ,余数 DX DXAX/ 源(字) * 源操作数可选寄存器、存储器(说明字还是字节) * 除法指令对标志无影响,但超过范围,产生中断

DIV 源 IDIV 源 AAD

Page 41: 微机原理

例 1 :完成两个无符号数 7A86H , 04H相除 MOV AX , 7A86H MOV BL , 04H DIV BL 超过范围,产生除法中断

AL=-12AH=-2

AL=-13AH=1OR ?

MOV DX , 0MOV AX , 7A86HMOV BX , 04HDIV BX

例 2 : -38/3 的商和余数 MOV AX , -38 MOV CH , 03H IDIV CH

MOV AL , -38MOV CH , 03HCBWIDIV CH

Page 42: 微机原理

符号扩展:CBW AL 符号扩展 AXCWD AX 符号扩展 DX , AX

Page 43: 微机原理

除法的 ASCII 调整:AAD ALAH*10+AL , AH 0在做除法前先除例:完成非压缩 BCD 码 37 除 5 MOV AX , 0307H

MOV BL , 05H AAD ; AL=25H DIV BL ; AL=7 (商) AH=2 (余数)

Page 44: 微机原理

三、逻辑运算与移位指令

1 、逻辑运算指令 名称 操作码 操作数 功能 非 NOT 目的 目的 目的 与 AND 目的,源 目的 目的源 或 OR 目的,源 目的 目的源异或 XOR 目的,源 目的 目的源测试 TEST 目的,源 目的源

Page 45: 微机原理

与指令用来清除或保留操作数中某些位 或指令用来保留或使操作数某些位置 1 异或指令可使某些位取反,某些位不变 测试指令完成的功能是与,但不回送结果 逻辑运算指令对标志影响: NOT 指令不影响标志,其余指令根据结果置 SF , ZF , PF 、 CF 与 OF 清 0 、 AF 不确定。

Page 46: 微机原理

2 、移位与循环指令 逻辑左移 SHL 目的,计数值 算术左移 SAL 目的,计数值 逻辑右移 SHR 目的,计数值 算术右移 SAR 目的,计数值 循环左移 ROL 目的,计数值 循环右移 ROR 目的,计数值 带进位循环左移 RCL 目的,计数值 带进位循环右移 RCR 目的,计数值

Page 47: 微机原理

SHL/SAL SHRSARROLRORRCLRCR

0

0M

M

M

CF

CF

CF

CF

CF

CF

CF

L

L

L

Page 48: 微机原理

移位:

循环指令用于按位检测,又能恢复原值场所 8086循环和移位指令一次可移 1 位,也可移多位

( CL ) 操作数形式:

对标志影响:AF 无定义、 PF , SF , ZF根据结果定、 OF 移一位,根据结果定;移多位,不确定

目的操作数 可选用存储器、寄存器计数值 选 1 或 CL

逻辑左移 无符号乘 2 逻辑右移 无符号除 2算术左移 带符号乘 2 算术右移 带符号除 2

Page 49: 微机原理

例 2 : MOV AL , 10000000B MOV CL , 03H SAR AL , CL ; AL=F0H=-16

例 1 : MOV AL , 10000101B MOV CL , 03H ;右移三位 = 除 8 SHR AL , CL ; AL=10H=16

Page 50: 微机原理

用移位指令和循环指令可完成多精度数移位例 1 :完成 AX , BX左移一位

SHL BX , 1 RCL AX , 1

例 2 : 完成 AX , BX 右移一位(无符号数)

SHR AX , 1RCR BX , 1

Page 51: 微机原理

四、字符串处理指令 传送字节串或字串 字节串或字串比较 字节串或字串扫描 取字节串或字串 存字节串或字串

MOVS 目的,源MOVSB/MOVSW

CMPS 目的,源CMPSB/CMPSW

SCAS 目的 SCASB/SCASW

LODS 源 LODSB/LODSWSTOS 目的 STOSB/STOSW

Page 52: 微机原理

字符串指令有五种:传送、比较、扫描、取和存 字符串指令采用隐含寻址,指令中用到寄存器和标志 寄存器 /标志 用途 SI 源字符串的偏移量 DI 目的字符串的偏移量 CX 重复计数器

AL/AX

DF

ZF

SCAS 作为扫描值 LODS 作为目的操作数 STOS 作为源操作数=0 SI , DI自动增量 CLD =1 SI , DI自动减量 STD 扫描 /比较结束符

Page 53: 微机原理

传送指令:从源区目的区 DS:(SI) ES:(DI)

字节 SI1 SI DI1 DI字 SI2 SI DI2 DI

串比较: 源串和目的串比较 DS:(SI) - ES:(DI)相等 1 ZF , 不相等 0ZF

字节 SI1 SI DI1 DI字 SI2 SI DI2 DI

串扫描 : 用于扫描某个关键字

字节 AL-ES:(DI) DI1DI 相等 1 ZF , 不相等 0ZF字 AX-ES:(DI) DI2DI 相等 1 ZF , 不相等 0ZF

Page 54: 微机原理

存入串指令 : 把累加器内容存入指定附加段 字节 ALES:(DI) DI1DI

字 AXES:(DI) DI2DI

取串指令: 把数据段内容送累加器

字节 DS:(SI) AL SI1SI 字 DS:(SI) AX SI2SI

Page 55: 微机原理

重复 REP 重复,直至 CX=0 等于 /为零重复 REPE/REPZ ZF=1重复串操作,直至 CX=0 不等 /不为零重复 REPNE/REPNZ ZF=0重复串操作,直至 CX=0

Page 56: 微机原理

MOVSB

MOV A,[SI]MOV ES:[DI],ALINC SIINC DI

REP

DEC CXJNZ XX

XX:

例 1 :要求把程序段以 SRC-MESS 为偏移地址的字符串‘ HELLO’ 传送到附加段以NEW-LOC 的单元中。

DATA SEGMENT

SRC_MESS DB ‘HELLO’

DATA ENDS

EDATA SEGMENT

NEW_LOC ?,?,?,?,?

EDATA ENDS

CODE SEGMENTASSUME CS:CODE,DS:DTAT,ES:EDATA

MOV AH,4CH INT 21HCODE ENDS

MOV AX,DATAMOV DS,AXMOV AX,EDATAMOV ES,AXMOV SI,OFFSET SRC_MESS

MOV DI,OFFSET NEW_LOC

MOV CX,5

Page 57: 微机原理

例 2 :比较两个字符串,首址分别为 PASSWORD ,IN-WORD 若输入字符串相同,程序开始运行,否则,程序驱动扬声器发声

DATA SEGMENT

PASSWORD DB ‘750430LI’

IN-WORD DB ‘750424LE’

COUNT EQU 8

DATA ENDS

CODE SEGMENT ASSUME DS : DATA , ES : DATA … … LEA SI , PASSWORD LEA DI , IN-WORD MOV CX , COUNT CLD REPZ CMPSB JNE SOUND OK … … : SOUND :… … CODE ENDS

Page 58: 微机原理

在某一字符串中搜寻是否有字符 A ,若有,则把搜索次数记下来,送 BX 寄存器。若没有查到,则将 BX 的内容清 0 ,设字符串起始地址为 0 MOV DI , OFFSET STRING MOV CX , COUNT MOV AL ‘, A’ CLD REPNE SCASB JZ FIND MOV DI , 0FIND : MOV BX , DI

初始化,保证指令正确执行

搜索字符

条件判断

Page 59: 微机原理

五、控制转移类指令 控制转移类指令用于控制程序的走向 8086 的控制转移指令有无条件转移、条件转移、长转移、短转移。

8086 的转移指令有 28 条,分 4 组

Page 60: 微机原理

1 、条件转移指令

1 )直接标志转移( 10 条)

JC rel CF=1 JNC rel CF=0 JZ/JE rel ZF=1 JNZ/JNE rel ZF=0 JS rel SF=1 JNS rel SF=0 JO rel OF=1 JNO rel OF=0 JP/JPE rel PF=1 奇 JNP/JPO rel PF=0 偶

条件判断?

满足

PC+2+rel->pc Pc+2->pc

不满足

Page 61: 微机原理

求 AL , BL 两数之和、若有进位,则 AH 置

1 ,否则 AH 清 0 ADD AL , BL JC NEXT MOV AH , 0 JMP EXITNEXT : MOV AH , 1EXIT :

Page 62: 微机原理

2 )间接标志转移 (8 条 ) 无符号数

JA/JNBE rel CF ZF=0 高于 / 不低于等于 JAE/JNB rel CF=0 高于等于 / 不低于 JB/JNAE rel CF=1 低于 / 不高于等于 JBE/JNA rel CF ZF=1 低于等于 / 不高于

带符号数JG/JNLE rel (SF OF) ZF=0 大于 / 不小于等于 JGE/JNL rel SF OF=0 大于等于 / 不小于 JL/JNGE rel SF OF=1 小于 / 不大于等于 JLE/JNG rel (SF OF ) ZF=1 小于等于 /不大于

Page 63: 微机原理

设某个学生的英语成绩已在 AL 寄存器 ,若低于 60 分 ,则打印

F(FAIL), 若高于或等于 85,则打印 G(GOOD),当 60 分和 84

分之间 , 打印 P(PASS)

CMP AL,60 JB FAIL CMP AL,85 JAE GOOD MOV AL,’P’ JMP PRINT MOV AL,’F’ JMP PRINT MOV AL,’G’

FAIL:

GOOD: PRINT:

Page 64: 微机原理

在以首址为 TABLE 的 10 个内存字节单元中存放10 个带符号数 ,要求统计正数、负数和零的个数,并把结果存放在 PLUS 、 NEGT 、 ZERO单元DB

01H , 80H , 0F5H , 32H , 86H DB 74H , 49H , 0AFH , 25H , 40H DB 0 DB 0 DB 0 MOV CX,10 MOV BX,0 CMP TABLE[BX],0 JGE GRET_EQ INC NEGT JMP NEXT JG P_INC INC ZERO JMP NEXT

PLUS NEGT ZERO

AGAIN:

GRET_EQ:

INC PLUS INC BX DEC CX JNZ AGAIN

P_INC: NEXT:

TABLE

Page 65: 微机原理

2 、无条件转移和过程调用1 ) JMP 无条件转移 段内直接寻址 立即短转移 JMP SHORT PROG_S (8 位立即数 ) 立即近转移 JMP NEAR PTR PRON_N ( 16 位立即数) 段内间接寻址 以存储器或寄存器作为转移目标地址 寄存器: JMP BX

存储器: JMP WORD PTR [BX] 段间直接寻址 JMP FAR PTR PROG _F 段间间接寻址 JMP DWORD PTR[BX]

Page 66: 微机原理

2 )过程调用和返回指令 调用: CALL 过程名 返回: RET RET N

Page 67: 微机原理

3 )循环控制指令 LOOP rel CX CX-1 ;( CX )‡ 0 循环 LOOPZ/LOOPE rel CX CX-1 ; (CX)‡ 0ZF=1 循环

LOOPNZ/LOOPNE rel CX CX-1 ; (CX)‡ 0ZF=0 循环

JCXZ rel (CX)=0循环

Page 68: 微机原理

例 1:设商店有 8 种商品 ,它们的价格分别为 83元 ,76元 ,65元 ,84元 ,71元 ,49元 ,62元 ,58元 ,现将每

种价格提价 7元。

DB 83H,76H,65H,84H DB 71H,49H,62H,58H DB 8 DUP (?)

MOV CX,08H MOV BX,00 MOV AL,OLD[BX] ADD AL,7 DAA MOV NEW[BX],AL INC BX LOOP NEXT

OLD

NEW

NEXT:

Page 69: 微机原理

例 2:设有一个 50 字节组成的数组存放在 ARRAY开始

的内存单元 ,现要对该数组元素进行测试 ,查找第一

个非零元素。DB XX , XX …,

MOV BX , OFFSET ARRAY DEC BX MOV CX , 50 INC BX CMP [BX] , 00 LOOPE NEXT

ARRAY

NEXT :

Page 70: 微机原理

例 3 :设一个由 17 个字符组成的字符串存放在STRING开始的内存,现要查找该字符串中是否包含空格符。若没有查到或尚未查完,则继续找,直到找到第一个空格符或查完为止。

DB ‘Personal Computer’

MOV BX,OFFSET STRING DEC BX MOV CX,17 INC BX CMP [BX],20H LOOPNZ NEXT

NEXT:

STRING

Page 71: 微机原理

4) 中断指令 INT N INTO IRET

Page 72: 微机原理

修改标志 CLC CF0 CMC CFCF STC CF1 CLD DF0 STD DF1 CLI IF 0 STI IF 1

六、处理器控制指令

Page 73: 微机原理

8086 与外部事件同步 HLT 停机 WAIT 等待 ESC 交权 LOCK 封锁

Page 74: 微机原理

空操作 NOP 空操作