数据传送类指令

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

05
06
不允许直接向段寄存器传送立即数。
该指令不影响标志位。
06
数据传送类指令
例3-12
指出下列指令中的错误 (1)MOV [DI], [SI] (2)MOV DS, 1000H (3)MOV 2000H, AX
(1)两个操作数不能同时为存 储器操作数。
(2)不能直接向段寄存器传送 立即数,正确的指令应为:
(1)在CPU内部寄存器之间 进行数据传送。
例如,MOV BL, AL MOV BX, AX MOV DS, AX
(2)在CPU内部寄存器与存 储器之间进行数据传送。
例如,MOV AX, [1000H] MOV BX, [SI][BX] MOV DATA[BP], ES
(3)将立即数传送给寄存器。 例如,MOV AX, 1234H MOV SI, 1000H
例3-14
数据传送类指令
已知:(BX)=1122H,(DS)=3000H,(31000H)=1234H。执行指令: XCHG BX, [1000H] 源操作数的物理地址为:(DS)×16+1000H=31000H。 指令执行的结果为:(BX)=1234H,(31000H)=1122H。
要实现两个存储单元X与Y之间的数据交换, 可以执行如下指令:
数据传送类指令
例3-15 已知:(DS)=3000H,(32000H)=12H,(32001H)
=34H,(32002H)=56H,(32003H)=78H。执行指令: LDS SI, [2000H]
地址传送指令
1.5 输入输出指令
数据传送类指令
输入输出指令用于在I/O端口与CPU之间传送数据。
MOV AX, 1000H MOV DS, AX (3)立即数不能作为目的操 作数。
数据传送类指令
1.2 堆栈操作指令
堆栈是存储器中按照“后进先出”原则工作的一个区域,最后一个压入堆栈的数据所在的存储单元称为 栈顶,数据的存入和弹出操作都是在栈顶进行的。
堆栈位于堆栈段中,在堆栈操作中, 段寄存器SS指示段地址,堆栈指针寄存器 SP指示栈顶,从而确定入栈或出栈的存储 单元。
• OUT DX, AX
功能
• 将AL或AX 中的内容输 出到指定的 I/O端口。
数据传送类指令
注意 • (1)输入输出指令只能使用累加器AX
或AL来输入或输出数据。
格式 • POP DST
功能
• 先将SP指示 的栈顶内容存 入DST,再将 SP的内容加2, 指示当前栈顶 的存储单元。
数据传送类指令
堆栈操作指令只能做字操作。
01
02
堆栈操作指令不允许使用立即寻址方式。
堆栈操作指令可以使用段寄存器,但出栈指令不允许使用CS寄存器。 03
04
入栈指令和出栈指令不影响标志位。

入栈指令将其保存,之后再用出栈指令恢复原来的内容。

1.3 交换指令
格式 • XCHG OPR1, OPR2
数据传送类指令
功能
• 两个操作数中的内容进行交 换。 例如,XCHG AX, BX XCHG BX, [1234H]
注意
• (1)两个操作数中必须有 一个在寄存器中,即不允许 两个存储器之间进行交换。 (2)不允许使用段寄存器 和立即数。 (3)交换指令不影响标志 位。
数据传送类指令
3 指针送寄存器和ES指令
格式:LES REG, MEM 功能:将存储器MEM中存放的4个连续字节中的内容(包括偏移地址和段地址)分别送到指定寄存器和 ES中。其中,前2个字节送入指定寄存器中,后2个字节送入ES中。
注意: (1)目的地址传送指令中的目的操作数必 须是16位通用寄存器,源操作数必须是存储器。 (2)目的地址传送指令不影响标志位。
XCHG AX, X XCHG AX, Y XCHG AX, X
技巧
数据传送类指令
1.4 目的地址传送指令
目的地址传送指令用于将地址送到指定寄存器中。
1 有效地址传送指令
2 指针送寄存器和DS指令
格式:LEA REG, MEM 功能:将存储器MEM的有效地址(偏移地 址)送到指定寄存器中。
格式:LDS REG, MEM 功能:将存储器MEM中存放的4个连续字节中的 内容(包括偏移地址和段地址)分别送到指定寄存器 和DS中。其中,前2个字节送入指定寄存器中,后2个 字节送入DS中。
堆栈中的内容是由高地址向低地址方 向存放的,为保证SP总是指向当前的栈顶, SP的内容必须及时修改,入栈操作时SP数 值减小,出栈操作时SP数值增加。
堆栈的生长方向及入栈和出栈操作
1 入栈指令
数据传送类指令
2 出栈指令
格式 • PUSH SRC
功能
• 先将SP的内 容减2,再 将SRC的内 容存入SP指 示的栈顶存 储单元。
微机原理与接口技术
数据传送类指令
数据传送类指令是8086指令系统中最基本、使用最频繁的一类指令, 其主要功能是将数据或地址传送到寄存MOV DST, SRC
功能 将源操作数传送给目的操作数。
数据传送类指令
数据传送类指令可以在CPU内部寄存器、存储器与立即数之间进行数据传送,传送方式如下:
例3-13
数据传送类指令
已知:(SS)=3000H,(SP)=1000H,(AX)=1122H,(31000H)=1234H。 执行指令:PUSH AX
POP BX
堆栈操作指令
数据传送类指令
堆栈在子程序调用和中断调用中起着很重要的作用。另外,如果程
序中要使用某些寄存器,但这些寄存器的内容以后还要用,就可以先用
(4)将立即数传送给存储单 元。
例 如 , MOV WORD PTR [BX], 1000H
数据传送类指令
不允许将CS,IP作为目的操作数。
01
02
源操作数和目的操作数不能同时为段寄存器。
源操作数和目的操作数的类型必须匹配。
03
04
源操作数和目的操作数不能同时为存储器单元。
数据传送类指令
立即数只能作为源操作数,不能作为目的操作数。
1 输入指令
2 输出指令
长格式
• IN AL, PORT • IN AX,
PORT
短格式
• IN AL, DX • IN AX, DX
功能
• 从指定的I/O 端口输入一 个字节或一 个字的数据 送入AL或AX。
长格式
• OUT PORT, AL
• OUT PORT, AX
短格式
• OUT DX, AL
相关文档
最新文档