的指令系统通用数据传送指令

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
其中 dest 表示目的操作数,src表示源操作数
▪ 执行的操作:
(dest)(src)
▪ 与标志的关系:
与标志没有关系,不影响标志位。
通用数据传送指令
MOV 指令 • 数据传送通道
立即数
通用寄存器 存

AX BX CX DX

BP SP SI DI
段寄存器 CS DS ES SS
图1 MOV 指令数据传送通道
输入字节或字 输出字节或字
通用数据传送指令
• 有以下五条
▪ MOV
把源操作数传送到目的操作数
▪ PUSH 指针上移,源操作数进栈
▪ POP
出栈到目的操作数,指针下移
▪ XCHG 交换源,目的操作数
▪ XLAT 代码转换
通用数据传送指令
MOV 指令 • 基本格式和功能
▪ 指令格式:
MOV dest,src
• 指令辩误:
MOV AL,[CX] MOV AL, CX MOV [3000H], [BX] MOV AL, 1200H MOV CS, BX MOV DS, 1200H MOV ES, DS
通用数据传送指令
MOV 指令 • 练习
题目1:已知当前BX=1200H,CS=1800H, IP=0500H,DS=3000H,则执行指令MOV [BX+2000H],12ABH 后,12ABH放在哪两个 存储单元(物理地址)?
MOV指令的形式有如下几种:
• 1)从通用寄存器到通用寄存器 MOV reg1,reg2 • 2)立即数传送到通用寄存器 MOV reg ,data • 3)通用寄存器和存储单元之间 • MOV mem (reg),reg (mem) • 4)立即数传送到存储单元 MOV mem, data • 5)段寄存器与通用寄存器间的数据传送 • MOV seg,reg 或 MOV reg, seg • 6)段寄存器与存储单元间的数据传送 • MOV seg,mem 或 MOV mem, seg
通用数据传送指令
• MOV AX,BUF
;BUF是变量,源操作数为直接寻址
• MOV BH,[DI]
;源操作数为寄存器间接寻址
• MOV DI,ES:3[SI] ;源操作数为变址寻址,使用跨段前缀
• MOV BP,3[BX+SI] ;源操作数为基址加变址寻址
• MOV BUFA,DL;BUFA是一字节变量
通用数据传送指令
MOV 指令 • 一些说明
• 说明:
▪ 立即数不能直接传给段寄存器;段寄存器之间也不能
进行直接传送。(这2种情况通常要通过通用寄存器间 接进行)Leabharlann Baidu
▪ DEST和SRC两个操作数不能同时为存储器操作数;两
个存储单元之间不能用一条MOV指令直接完成数据传 送。存储器操作数可用任何一种存储器寻址方式。
• MOV [BP],AX ;使用SS段寄存器
• MOV DS:[BP],DL ;使用跨段前缀
• MOV BUF,DS ;BUF是个字变量
• MOV ES ,BUF
通用数据传送指令
• 已知数据段定义如下,写出该数据段在
内存中的存储状况和指令执行后的结果
Data segment Area1 db 14h,3bh Area2 db 3 dup(0) Array dw 3100h,01a6h
XLAT
目标地址 LEA d, s 传送 LDS d, s
LES d, s
标志位 传送
I/O数据 传送
LAHF SAHF PUSHF POPF
IN 累加器,端口 OUT 端口,累加器
指令功能
字节或字传送 字压入堆栈 字弹出堆栈 字节或字交换 字节翻译(代码转换)
装入有效地址 装入地址指针(用DS) 装入地址指针(用ES) 将F低字节装入AH寄存器 将AH内容装入F低字节 将F的内容压入堆栈 从堆栈中弹出一个字装入F
指令系统概述
• 按照汇编指令功能划分,8086的指令可以
分成六大类:
▪ 数据传送指令 ▪ 算术运算指令 ▪ 位运算指令 ▪ 串操作指令 ▪ 控制转移指令 ▪ 处理器控制指令
数据传送指令
表一 数据传送指令列表
指令类型 指 令
MOV d, s
通用数据 PUSH s 传送 POP d XCHG d, s
▪ DEST和SRC长度须相同,即同时为字或字节。
通用数据传送指令
MOV 指令 • 一些说明
• 说明
▪ 立即数只能出现在源操作数位置,不能作DEST ▪ CS只能作源操作数,不能作目的操作数。 ▪ 传送实质上是复制,对源操作数无影响。 ▪ 16位数据的传送遵循地址“高对高,低对低”的原
则。这个原则不仅对MOV指令适用,对所有的传送 皆适用。
dw 1234h,5678h String db ‘good’ Data ends
Mov ax,data Mov ds,ax
Mov ax,array Mov bl,area1
Mov bx,offset array Mov ax,[bx] Mov cx,[bx+2] Mov si,3 Mov dx,[bx][si] Mov dx,[bx+si+3]
答案:12ABH放在33200H和33201H存储单元中。其 中12H放在33201H单元中,而0ABH放在33200单元中。
通用数据传送指令
MOV 指令 • 练习
题目2:将DS段中2000H单元与3000H单元的内容 互换,请写出指令序列。
解: MOV AL,[2000H] MOV BL, [3000H] MOV [2000H], BL MOV [3000H], AL
通用数据传送指令
MOV 指令 • 例子
• m →m
MOV DL, DA_BYTE1 MOV DA_BYTE2, DL
• m ←→m(存储单元内容互换)
MOV CL,DA_BYTE1 MOV DL,DA_BYTE2 MOV DA_BYTE1,DL MOV DA_BYTE2,CL
通用数据传送指令
MOV 指令 • 例子
通用数据传送指令
MOV 指令 • 例子
• 立即数→r/m
MOV CL, 05H MOV AX, 1234H MOV ADDR, 12H MOV ADDR, 1234H
通用数据传送指令
MOV 指令 • 例子
• reg ←→reg
MOV DH, AL MOV DS, AX
• r ←→m
MOV DL, DA_BYTE MOV DL, [SI] MOV AX, DA_WORD
相关文档
最新文档