微机原理第四章(2)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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、堆栈操作指令
1)堆栈
堆栈是存储器的一段内存区域
(SP)-2 (SP)-1
(SP)
低地址 (SS段)
(SP)
20 (AL)
10 (AH)
执行前 高地址
(AX)=1020
执行后 高地址
PUSH AX指令执行示意图
17
POP BXBaidu Nhomakorabea
(SS段) 低地址
(SS段) 低地址
(SP) (SP)+1 (SP)+2
20 10
(SP)
10 20
执行前
BX
高地址
执行后 高地址
6
1、通用数据传送指令
一般传送指令
MOV DST,SRC
执行 ( dst ) ← ( src )
如:MOV AL,CL MOV BX,[SI] MOV [SI],CX MOV CL,[BX+5]
7
MOV指令特点及注意事项:
双操作数指令 (注意双操作指令的特点)
可进行字节或字传送
不允许直接将数据从一个存储器单元传送到另一个存储 器单元。
1693:0102 MOV ES, AX
1693:0104
-
10
例 编程将CL寄存器的内容传送到0200:0100H单元中。 MOV [0200H:0100H ], CL
编程1: MOV AX, 200H
MOV DS , AX
MOV [0100H ], CL
; (DS) = 0200H ;(02100H) = (CL)
▲ 特点:
1. 除POPF、SAHF外,其他传送指令对标志位均无影响
2. 唯一允许以段寄存器做操作数的指令 且只有MOV、PUSH、POP这三条允许
5
传送指令数据流
* CMSO不V能D为S,1目23的4H操;作×数,不M能O对VIPD直S,E接S传; ×送数据
* 堆MO栈V操[作BX不],[允SI许];为×字节操作
(BX)=1020
POP BX指令执行示意图
18
特点: • 下推式的(规定堆栈设置在堆栈段内)改变SP的内容, 随着推入堆栈内容增加,SP的值减少。 • 先进后出工作原则(Last In First Out 简称LIFO)
2
二 .数据传送指令
地址总线 AB
CPU
存 I/O 输 储 接入 器 口设


I/O 接 口
出 设 备
数据总线 DB 控制总线 CB
寄存器,存储器,I/O端口
3
▲ 数据传送是最基本、最重要的一种操作
实际程序中,使用的比例最高
寄存器 寄存器 寄存器 内存单元 寄存器 I/O端口 设置寄存器、内存单元的初始值
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
汇编子程例:
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
2)堆栈的作用:
调用过程时,保存返回地址。暂时存放寄存器或存储 器单元操作数的内容。 3)堆栈的特点: • 具有“先进后出”的特点 • 堆栈有两个基本操作:PUSH(进栈)和POP(出栈) • PUSH操作使栈顶向低地址方向移动,而POP操作则刚 好相反 • 堆栈操作只能作字操作
15
❖ 压栈指令 PUSH SRC
AREA1:
100个数据 AREA2:


12
分析题意: ①可以用200条MOV指令来完成100个字传送, 指令操作重复,每个数据传送后的地址是变化的。
② 可以利用循环, 但每循环一次要修改地址(源地址和目的地址),
必须把地址放在寄存器当中,用寄存器间接寻址来寻找操 作数.
13
得到如下程序:…
AGAIN :
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
编程2: MOV AX, 200H MOV DS , AX MOV DI , 100H MOV [ DI ], CL
; (DS) = 0200H ; (DI) = 0100H ;(02100H) = (CL)
11
MOV指令应用
例: 将AREA1开始的100个字类型数据传送到AREA2开始的单元。
第三节 8086/8088的指令系统
一. 概述 二. 数据传送指令 三. 算术运算指令 四. 逻辑运算指令 五. 控制转移指令 六. 处理机控制指令 七. 串操作指令
1
一.概述
8086/8088的指令系统中共有92种基本指令。
按功能分为6类: ❖ 数据传送指令 ❖ 算术运算指令 ❖ 逻辑运算和移位指令 ❖ 串操作指令 ❖ 程序控制指令 ❖ 处理器控制指令
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
如:PUSH DS PUSH [SI]; 连续两个单元的内容压入堆栈(SP-2) PUSH DWORD PTR [SI];连续四个单元的内容
❖ 出栈指令 POP DEST
如:POP AX;从堆栈顶部连续取两个单元的内容送AX
; (SP+2)
POP DS
POP [BX]
16
AX=1020H
低地

(SS段)
相关文档
最新文档