微机原理第四章(2)PPT课件
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
▲ 特点:
1. 除POPF、SAHF外,其他传送指令对标志位均无影响
2. 唯一允许以段寄存器做操作数的指令
且只有MOV、PUSH、POP这三条允许
-
源自文库
5
传送指令数据流
* CMSO不V能D为S,1目23的4H操;作×数,不M能O对VIPD直S,接ES传; ×送数据
* 堆MO栈V操[作BX不],[允SI许];为×字节操作-
MOV SI,OFFSET AREA1
MOV DI,OFFSET AREA2
MOV CX,100
MOV AX,[SI]
MOV [DI],AX
INC SI
;修改地址指针
INC SI
INC DI
;修改地址指针
INC DI
DEC CX
;修改个数
JNZ AGAIN
-
14
…
2. XCHG交换指令
格式 执行
XCHG oprd1,oprd2
输入、输出指令不影响标志位。
-
18
长格式: 端口号中前256个端口(00H ~FFH),可以直接写在指令 中, 端口号代替指令中的PORT,
编程2: MOV AX, 200H
MOV DS , AX
; (DS) = 200H
MOV DI , 100H
; (DI) = 100H
MOV [ DI ], CL
;(02100H) = (CL)
-
11
MOV指令应用
例: 将AREA1开始的100个字类型数据传送到AREA2开始的单元。
AREA1:
6
1、通用数据传送指令
一般传送指令
MOV DST,SRC
执行 ( dst ) ← ( src )
如:MOV AL,CL MOV BX,[SI] MOV [SI],CX MOV CL,[BX+5]
-
7
MOV指令特点及注意事项:
双操作数指令 (注意双操作指令的特点)
可进行字节或字传送
不允许直接将数据从一个存储器单元传送到另一个存储 器单元。
ZERO: MOV BX, AX RET
4
change ENDP
▲ 按传送内容,可分为四类:
1. 通用数据传送 MOV, PUSH, POP, XCHG, XLAT 2. 地址传送 LEA, LDS, LES 3. 标志传送 PUSHF, POPF, LAHF, SAHF 4. 输入输出传送 IN, OUT
-
汇编子程例:
change PROC LEA SI, num+2 MOV CL, num+1 MOV CH, 0 MOV AX, 0 MOV DI, 10
NEXT: MUL DI MOV BH, 0 MOV BL, [SI] AND BL, 0FH ADD AX, BX INC SI LOOP next
MOV [ BX ] , value
MOV [DI], [SI]
MOV AX ,value
MOV [ BX ] ,AX
MOV AL ,[SI]
MOV [ DI ] ,AL
-
8
可对 DS、ES、SS 赋值 但不允许立即数直接传送给段寄存器 MOV DS,AX MOV ES ,[BX] MOV DS,1000H MOV AX ,1000H MOV DS,AX
100个数据 AREA2:
…
…
-
12
分析题意: ①可以用200条MOV指令来完成100个字传送, 指令操作重复,每个数据传送后的地址是变化的。
② 可以利用循环, 但每循环一次要修改地址(源地址和目的地址),
必须把地址放在寄存器当中,用寄存器间接寻址来寻找操作 数.
-
13
得到如下程序:…
AGAIN :
1693:0102 MOV ES, AX
1693:0104
-
-
10
例 编程将CL寄存器的内容传送到200:100H单元中。 MOV [200H:100H ], CL
编程1: MOV AX, 200H
MOV DS , AX
MOV [100H ], CL
; (DS) = 200H ;(02100H) = (CL)
(oprd1)
(oprd2)
可实现
reg reg mem
reg mem reg
-
15
例 XCHG AX, BX 字操作 执行前(AX)= 1122H (BX)= 3344H 执行后(AX)= 3344H (BX)= 1122H
例 XCHG AH, BL 字节操作 执行前(AH)= 11H (BL)= 44H 执行后(AH)= 44H (BL)= 11H
第三节 8086/8088的指令系统
一. 概述 二. 数据传送指令 三. 算术运算指令 四. 逻辑运算指令 五. 控制转移指令 六. 处理机控制指令 七. 串操作指令
-
1
一.概述
8086/8088的指令系统中共有92种基本指令。
按功能分为6类: ❖ 数据传送指令 ❖ 算术运算指令 ❖ 逻辑运算和移位指令 ❖ 串操作指令 ❖ 程序控制指令 ❖ 处理器控制指令
CS不能做目的操作数, 不能通过传送指令改变CS的值 MOV CS , AX
-
9
不允许段寄存器传送到段寄存器 MOV ES ,DS
MOV AX , DS MOV ES , AX
D:\MASM>DEBUG
-A
1693:0100 MOV ES, DS
^ Error
1693:0100 MOV AX, DS
-
2
二 .数据传送指令
地址总线 AB
CPU
存 I/O 输 储 接入 器 口设
备
I/O 接 口
输 出 设 备
数据总线 DB 控制总线 CB
寄存器,存储器-,I/O端口
3
▲ 数据传送是最基本、最重要的一种操作
实际程序中,使用的比例最高
寄存器 寄存器 寄存器 内存单元 寄存器 I/O端口 设置寄存器、内存单元的初始值
输入输出指令共两条: ( 1 )、IN (Input byte or word) ( 2 )、OUT (Output byte or word)
输入指令用于CPU从外设端口接收数据, 输出指令用于CPU向外设端口发送数据。
无论接收还是发送数据,必须通过累加器AX(字)或AL(字 节),每个外设要占多个端口:数据口,状态口和控制口。
-
16
XCHG oprd1,oprd2 注意事项:
双操作数指令
可进行字或字节操作,不影响标志位。
不允许使用立即数或段寄存器做操作数 XCHG AX, 4 XCHG BX, DS
• 存储器之间不能交换,两个操作数中必须有一个在寄存器中;
XCHG [BX],[DI]
-
17
3. 输入输出指令(Input and Output)