数据传送类指令
数据传送类指令

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. 堆栈操作
3. 地址传送
4. 标志位传送
5. I/O数据传送
传送类指令执行后对标志位都没有影响(除SAHF、 POPF和POPFD外)。
-.通用数据传送指令
指令书写格式
指令功能
MOV REG/MEM/SEG,REG/MEM/SEG/IMM XCHG REG/MEM,REG/MEM XLAT BSWAP REG32
2009年6月2日星期二
8
PUSH/POP指令
PUSH指令:①SP-N→SP; ②16/32/64位的源操作数压入堆栈
源操作数可以是通用寄存器、段寄存器和存储器,N为源操作数的 字节数2或4或8 。 POP指令:①从栈顶弹出操作数到目标操作数;
② SP+N→SP 目标操作数可以是通用寄存器、段寄存器(CS除外)或存储器。
注意:
①不能在两个存储单元之间直接交换数据;
②段寄存器和立即数不能作为操作数。
2009年6月2日星期二
5
(3)查表转换指令XLAT
指令格式:XLAT 功能:完成一个字节的查表转换,将数据段中偏移地址为
BX/ebx/RBX与AL寄存器之和的存储单元的内容送入AL寄存器, 即:[BX+AL]→AL。 例:若(BX)=0100H,(AL)=05H,执行XLAT指令后,(AL)=2CH。 注意:由于AL只有8位,所以表的长度不能超过256字节。
2009年6月2日星期二
10
(3)PUSHAD/POPAD
386新增指令 PUSHAD指令将所有扩展通用寄存器的内容
压入堆栈,压入的顺序是:EAX、ECX、 EDX、EBX、ESP、EBP、ESI、EDI; POPAD弹出的顺序与PUSHAD压入的相反 (弹出到ESP的值被丢弃)。
数据传送类指令

【例】: 设内部RAM(30H)=40H,(40H)=10H,(10H)=00H,(P1)=0CAH,分析以 下程序执行后,各单元、寄存器、P2口的内容。
MOV R0,#30H
;R0←30H
MOV A,@R0
;A←((R0))
MOV R1,A
;R1←(A)
MOV B,@R1
;B←((R1))
MOV @R1,P1
;A←00H
MOV @DPTR,A
;((DPTR))←(A)
程序段执行后,(DPTR)=2023H,(30H)=0FH,(A)=00H,(2023H)=00H,表示 把片外RAM 2023H单元的内容0FH送到内部RAM的30H单元,然后把外部RAM 2023H单元和累加器A清0。
若采用R0和R1间接寻址,必须把高8位地址先送到P2口,上述程序段将改为:
单片机原理与应用
助记符有:MOV,MOVX,MOVC,XCH,XCHD,PUSH,POP,SWAP。 格式:MOV [目的操作数],[源操作数] 功能:目的操作数← 源操作数中的数据 源操作数可以是:A、Rn、direct、@Ri、#data 目的操作数可以是:A、Rn、direct、@Ri
注意:一般不影响标志,只有一种堆栈操作可能直接修改程序状态字 PSW。另外,如果目的操作数为ACC,将会影响奇偶标志P。
MOV A,@Ri
A←((Ri)) √ × × × Ri内容指向的地址单元中的内容送到累加器A
【例】: 设外部RAM(2023H)=0FH,执行以下程序段:
MOV DPTR,#2023H ;DPTR←2023H
MOVX A,@DPTR
;A←((DPTR))
MOV 30H,A
;30H←(A)
[信息与通信]MCS-51单片机指令系统-数据传送类指令
![[信息与通信]MCS-51单片机指令系统-数据传送类指令](https://img.taocdn.com/s3/m/e38c3c365bcfa1c7aa00b52acfc789eb162d9e5d.png)
<P1>=0CAH,分析以下程序执行后各单元及寄存
器、P2口的内容.
• MOV R0,#30H
;R0=30H
• MOV A,R0
;A=40H
• MOV R1,A
;R1=40H
• MOV B,R1
;B=10H
• MOV R1,P1
;<40H>
• MOV P2,P1
=0CAH
• MOV
;
•执行上述指10令H后,#的20结H果为:<R0>=3<0PH2,<>R=10>C=A<HA>=40H,
3.3 MCS-51指令系统
3.3.1 数据传送类指令〔29条〕 传送类指令分成两大类
1. MOV,一般传送 2.Байду номын сангаас非MOV,特殊传送, 如:MOVC、MOVX、PUSH、
POP、 对PSW的X影C响H、XCHD及SWAP.
• 1. 访问片内数据存储器的一般数据传送指令
• 该类指令的功能是实现数在片内RAM单元之间、 寄存器之间、寄存器与RAM单元之间的传送.所 有指令具有统一的格式,其格式如下:
MOV Rn,
A direct
#data
例:若〔60H〕= 30H 执行 MOV R6,60H
结果:〔R6〕= 30H.
3> 以direct 为目的操作数的指令
MOV direct,
A Rn direct1 Ri
#data
例:若〔R0〕=30H,〔30H〕=25H 执行MOV 40H,R0 指令
结果:〔40H〕=25H.
RAM20H单元 • 外部ROM 2000H单元中的内容送到外部
数据传送指令

3.访问外部RAM的指令
MOVX A, @Ri ;A←外部RAM(读) MOVX @Ri,A ; 外部RAM←A(写)
256个单元的范围,即:0000H—00FFH
MOVX A, @DPTR;A←外部RAM(读) MOVX @DPTR,A ; 外部RAM←A(写)
64KB范围,即:0000H—FFFFH 也作为外部扩展I/O口的操作!
XCH A,Rn
;A
XCH A,DIR ; A
XCH A,@Ri ; A
Rn (DIR) (Ri)
2.半字节交换指令 XCHD XCHD A,@Ri ;A0-3
(Ri)0-3
请看下一节:算术运算指令
4.3.3 堆栈操作指令
1. 进栈 PUSH PUSH DIR
如:PUSH ACC
; ①SP←SP+1 ; ②(SP)←(DIR) ;
2.出栈 POP
POP DIR
; ①(DIR)←(SP),
; ②SP←SP-1
如:POP ACC ;
主要用于保护现场(子程序中)
4.3.4 数据交换指令
1. 字节交换指令 XCH
2. 直接寻址:
MOV A , DIR
;A←(DIR)
MOV DIR, A
;(DIR)←A
MOV Rn, DIR
;Rn←(DIR)
MOV @Ri, DIR
;(Ri)←(DIR)
MOV dir2,DIR1 ;(dir2)←(DIR1)
n: 0,1,2,3,4,5,6,7
i: 0,1
Hale Waihona Puke 3. 间接寻址 MOV A , @Ri MOV @Ri, A MOV dir, @Ri
4-4 指令类型

程序控制类指令
返回地址是转子指令的下一条指令的地址,保 存址、用寄存器存放返回地址或用 堆栈保存返回地址。
程序控制类指令
从子程序转向主程序的指令称为返回指令,其 助记符一般为RET,子程序的最后一条指令一定是 返回指令。返回地址存放的位置决定了返回指令的 格式,通常返回地址保存在堆栈中,所以返回指令 常是零地址指令。
循环移位按是否与进位位一起循环又分为小循 环(不带进位)和大循环(带进位)。
程序控制类指令
程序控制类指令用于控制程序的执行顺序,并 使程序具有测试、分析与判断的能力。因此,它们 是指令系统中一组非常重要的指令,主要包括转移 指令、子程序调用和返回指令等。
程序控制类指令
转移指令又分无条件转移和条件转移两种。 无条件转移又称必转,它在执行时将改变程序 的常规执行顺序,不受任何条件的约束,直接把程 序转向该指令指出的新的位置执行,其助记符一般 为JMP。
运算类指令
移位指令分为算术移位、逻辑移位和循环移位3 类,它们又可分为左移和右移两种。
算术移位的对象是带符号数,在移位过程中必 须保持操作数的符号不变。当左移一位时,如不产 生溢出,则数值×2;而右移一位时,如不考虑因移 出舍去的末位尾数,则数值÷2。
运算类指令
逻辑移位的对象是无符号数,因此移位时不必 考虑符号问题。
指令类型
数据传送类指令
数据传送类指令是最基本的指令类型,主要用 于实现寄存器与寄存器之间,寄存器与主存单元之 间以及两个主存单元之间的数据传送。数据传送类 指令又可以细分为一般传送、堆栈操作和数据交换 指令。
数据传送类指令
一般传送指令具有数据复制的性质,即数据从 源地址传送到目的地址,而源地址中的内容保持不 变。一般传送类指令常用助记符MOV表示。
传送及比较指令总结

传送及比较指令总结传送指令是计算机系统中常用的一类指令,用于将数据从一个位置移动到另一个位置。
这些指令通常用于数据的复制、转移和重排等任务。
在本文中,我将总结一些常见的传送指令,并比较它们的异同。
1.MOV指令:MOV (Move) 指令用于将数据从一个位置复制到另一个位置。
它可以在寄存器之间、寄存器和内存之间、寄存器和端口之间进行数据的传送。
MOV 指令通常具有两个操作数,一个目标操作数和一个源操作数。
例如,`MOV AX, BX` 将寄存器 BX 中的值复制到寄存器 AX 中。
MOV 指令在大多数计算机体系结构中都是支持的,因为它是一种非常基本和常见的操作。
2.LDR和STR指令:LDR (Load) 和 STR (Store) 指令用于将数据从内存中加载到寄存器或将数据从寄存器存储到内存中。
这些指令主要在ARM架构中使用。
LDR指令将内存中的数据加载到寄存器中,例如,`LDR R0, [R1]` 将 R1 寄存器中的地址所对应的内存单元中的数据加载到 R0 寄存器中。
STR 指令则将寄存器中的数据存储到内存中,例如,`STR R0, [R1]` 将 R0 寄存器中的数据存储到 R1 寄存器中的地址所对应的内存单元中。
3.PUSH和POP指令:PUSH指令用于将数据压入栈中,而POP指令用于从栈中弹出数据。
这两个指令通常用于实现函数调用和中断处理等操作。
PUSH指令将数据放入栈顶,然后栈指针下移;而POP指令则将栈顶数据读取到寄存器中,并将栈指针上移。
例如,`PUSHAX`将AX寄存器中的数据压入栈中,`POPAX`将栈顶数据弹出到AX寄存器中。
4.XCHG指令:XCHG (Exchange) 指令用于交换两个操作数的值。
这个指令可以用于两个寄存器之间的值交换,或者寄存器和内存之间的交换。
例如,`XCHG AX, BX` 将寄存器 AX 和 BX 中的数据进行交换。
XCHG 指令常用于实现数据交换、排序和互斥访问等场景。
arm常用的数据传送指令

ARM指令集中的数据传送指令主要用于在寄存器和内存之间传输数据。
以下是一些常用的数据传送指令:
1. LDR - 加载寄存器指令。
用于从内存加载数据到寄存器。
2. STR - 存储寄存器指令。
用于将数据从寄存器存储到内存。
3. LDRB - 加载字节指令。
用于从内存加载一个字节的数据到寄存器。
4. STRB - 存储字节指令。
用于将一个字节的数据从寄存器存储到内存。
5. LDRH - 加载半字指令。
用于从内存加载一个半字的数据到寄存器。
6. STRH - 存储半字指令。
用于将一个半字的数据从寄存器存储到内存。
7. LDRD - 加载双字指令。
用于从内存加载一个双字的数据到寄存器。
8. STRD - 存储双字指令。
用于将一个双字的数据从寄存器存储到内存。
9. PUSH - 入栈指令。
用于将寄存器的值推送到堆栈中。
10. POP - 出栈指令。
用于从堆栈中弹出值并将其存储到寄存器中。
这些指令可以配合使用 ARM 的地址计算和跳转指令来完成更复杂的内存操作和数据处理任务。
请注意,具体支持的指令可能会因ARM 架构版本和处理器型号而有所不同。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.2.1 数据传送类指令数据传送指令用于实现寄存器与存储器之间、寄存器之间、累加器AL/AX与I/O端口之间、立即数到寄存器或存储器之间的字节或字的传送。
这类指令的共同特点是不影响标志寄存器的内容(SAHF,POPF除外)。
堆栈操作指令、标志位传送指令和地址传送指令也归入这一类中,共14条指令,又可分为4组,如表3.4所示。
1.通用数据传送指令通用数据传送指令包括传送指令MOV、堆栈操作指令PUSH、POP、输入/输出指令(累加器传送指令)、数据交换指令XCHG和查表转换指令XLAT。
这类指令是唯一允许以段寄存器作为操作数的指令(XCHG除外)。
表3.4 数据传送类指令指令类型指令书写格式指令功能通用数据传送指令MOV 目标,源PUSH 源POP 目标XCHG 目标,源XLAT 字节或字传送字压入堆栈字弹出堆栈字节或字交换字节翻译目标地址传送指令LEA 目标,源LDS 目标,源LES 目标,源装入有效地址装入DS寄存器装入ES寄存器标志位传送指令LAHFSAHFPUSHFPOPF 将FR低字节装入AH寄存器将AH内容装入FR低字节将FR内容压入堆域从堆栈弹出FR内容I/O数据传送指令IN 累加器,端口OUT 端口,累加器从端口输入字节或字将字节或字输出到端口(1)MOV 传送指令指令格式:MOV OPD,OPS指令功能:将源操作数OPS传送到目的操作数OPD,即(OPD)→(OPS)。
源操作数OPS可以是8/16位的通用寄存器、段寄存器、存储器中某单元或8/16位的立即数。
(2)PUSH进栈(压入)指令指令格式:PUSH OPS指令功能:将源操作数OPS压入堆栈,即SP–2 → SP,OPS → (SPH,SP)。
源操作数0PS可以是16位通用寄存器、段寄存器或存储器中的数据字,以保证堆栈按“字”操作。
源操作数OPS不能是立即数。
由于堆栈是按“后进先出”方式工作,所以每次执行PUSH指令时,总是首先修改栈指针(S P)–2 → SP (即SP先减2),使之指向新栈顶,然后把源操作数压入堆栈中SP所指示的位置,高字节在较高地址单元,低字节在较低地址单元中(真正的栈顶单元)。
由于堆栈总是按字操作,所以,SP总是指向字地址单元,堆栈段基址由SS确定。
堆栈最大容量为64K。
(3)POP出栈(弹出)指令指令格式:POP OPD指令功能:将堆栈中当前SP所指示的栈顶的一个字传送到指定的目的操作数OPD中,同时修改栈指针,即(SP+1,SP)→ OPD,(SP)+ 2 → SP,出栈操作是进栈操作的逆过程。
目的操作数OPD可以是16位通用寄存器、段寄存器或存储单元,但CS不能作目的操作数。
和进栈指令不同的是,出栈操作时是先将数据弹出送入目标地址,然后修改栈指针,即将S P减2送SP,这时SP向高地址端移动,指向新的栈顶。
(4)XCHG数据交换指令指令格式:XCHG OPD,OPS指令功能:把一个字或字节的源操作数OPS与目的操作数OPD互相交换位置。
即(OPD)→ OPS,(OPS)→ OPD。
源操作数OPS可为通用寄存器或存储器,目的操作数OPD只能为通用寄存器。
因此,交换指令可以在通用寄存器之间、通用寄存器与累加器之间、通用寄存器与存储器之间进行。
段寄存器不能作为操作数。
(5)XLAT查表转换指令(换码指令)指令格式:XLAT 转换表或XLAT指令功能:将[BX]为首址,[AL]为位移量的字节存储器单元中的数据→ AL,即[BX+AL] → AL。
查表转换指令XLAT可用来将一种代码转换成另一种代码,或者说可使累加器中的一个值变换为内存表格中的某一个值。
具体实现是这样的:使用XLAT指令之前必须先在内存(数据段)中建立一个表格,表格的内容就是所需要转换的代码,表格最多不超过256个字节,将表格的起始地址事先装入BX寄存器中,AL中存放所要查找的对象(表中某一项)到表首地址间的位移量。
执行XLAT指令时,就将BX 中的内容和AL中的内容相加作为有效地址,将表格中与该地址相对应的单元中的内容取出并传送到AL中。
也就是说,指令执行后所要查找的对象(即转换后的代码)就在AL中,BX中内容保持不变。
可见,只要改变AL的值即可从表中找到不同的代码。
例:利用XLAT指令将一位十六进制数转换为对应的ASCII码。
为实现这一转换,首先应在内存数据段建立一个表格,表中存放着十六进制数0,1,…,F 的ASCII码,并将表格的首地址置于BX中,AL中置入所要查找的十六进制数距表头的位移量,比如现在要查找表中第5项内容,则AL中应置入4。
实现上述操作的程序如下:DATA SEGMENTTAB DB ‘0 1 2 3 4 5 6 7 8 9 A B C D E F’DATA ENDMOV BX,OFFSET TAB ;变量TAB的有效地址FA → BX,即表示首址MOV AL,4 ;TAB表中第5项的位移量4 → ALXLAT TAB ;([BX+AL])=(TAB+4)=34H → AL上述过程如图3.5所示。
程序中DATA SEGMENT到DATA END之间的语句是十六进制数的ASCII码表。
2.地址传送指令8086/8088指令系统中有3条专门用于传送地址的指令:LEA、LDS和LES。
可用来传送操作数的段地址或偏移地址。
(1)LEA取有效地址指令指令格式:LEA OPD,OPS指令功能:按源操作数OPS提供的寻址方式计算偏移地址(即EA),并将该偏移地址传送到目的操作数OPD所指示的16位寄存器中。
注意:LEA指令中要求源操作数OPS所提供的必须是一个存储器单元地址,而目的操作数OPD必须是一个除段寄存器以外的16位寄存器。
另外,使用LBA指令时应注意它与MOV 指令的区别,MOV指令传送的是源操作数中的内容,而LEA指令传送的是源操作数的有效地址。
注意下面两条指令的区别:MOV AX,[SI] ;将SI所指示的存储单元中的内容送AXLEA AX,[SI] ;将SI所指的存储单元的EA送AX下列两条指令是等价的,都是将变量NUM的EA送SI中。
MOV SI,OFFSET NUM ;将变量NUM的EA送SI中,;OFFSET为数值返回运算符LEA SI,NUM ;与上条MOV指令等效,将NUM的EA送SI;这说明有时可用MOV指令来代替LEA指令。
(2)LDS送偏移地址及数据段首址指令指令格式:LDS OPD,OPS指令功能:(OPS)→ OPD,(OPS+2)→ DS该指令执行时是把从源操作数OPS所指示的连续4个字节(双字)存储器单元中的操作数送到目的寄存器OPD和DS中,其中低位地址的两个字节传送到OPD指示的寄存器中,高位地址的两个字节传送到段寄存器DS中。
可见,LDS指令要求:OPD一定要是一个16位通用寄存器,常用SI寄存器。
OPS所提供的一定要是一个存储器地址,且是一个地址指针,从指针所指示的地址单元开始,连续4个字节单元的内容分别送入OPD和DS中。
(3)LES传送偏移地址及附加数据段首址指令指令格式:LES OPD,OPS指令功能:(OPS)→ OPD,(OPS+2)→ ESLES指令功能与LDS类似,所不同的是将OPS所指示的4个连续单元中的后两个字节(高地址)单元中的内容送入附加数据段寄存器ES中而不是送入DS,前两个字节(低地址)单元中的内容送OPD所指示的16位寄存器中。
3.标志位传送指令标志位传送指令共有4条:LAHF(标志装入AH)、SAHF(AH的内容存入标志寄存器)、PUSHF(标志压入堆栈)和POPF(标志出栈)。
这些都是单字节指令,指令的操作数是隐含的,因此这些指令都是无操作数指令。
通过这些指令的执行,可以读出当前标志寄存器中的内容,也可以对标志寄存器设置新值。
(1)LAHF标志寄存器低字节送AH指令指令格式:LAHF指令功能:把标志寄存器FR中SF,ZF,AF,PF和CF(8080和8085所具有的标志)分别送到AH中第7,6,4,2和0位,AH中第5,3,1位内容未定义,可任意,标志寄存器本身内容不变。
(2)SAHF AH送标志寄存器低字节指令指令格式:SAHF指令功能:SAHF的功能与LAHF指令相反,是将AH中第7,6,4,2和0位状态传送至标志寄存器FR中的SF,ZF,AF,PF和CF位,取代这些标志位原内容,而OF,IF,TF,DF标志不受影响。
可见,通过该指令可以对标志位进行重新设置,所以该指令也叫设置标志指令。
(3)PUSHF标志进栈指令指令格式:PUSHF指令功能:把整个标志寄存器的内容压入堆栈,同时修改栈指针,即SP–2 → SP,该指令执行后不影响标志位。
(4)POPF标志出栈指令指令格式:POPF指令功能:POPF的功能正好与PUSHF相反,是将当前堆栈指针SP所指的一个字传送到标志寄存器FR中,同时修改栈指针即SP+2 → SP。
PUSHF和POPF这两条指令用于人为地保存和恢复标志寄存器,常用过程调用和中断服务程序的开头与结尾,用来保存主程序的状态标志。
这两条指令的另一个用途是用来改变跟踪单步标志TF,8086/8088指令系统中没有能直接改变TF的指令,若要改变TF,可先用PUSHF指令将标志寄存器压入堆栈,然后设法改变栈顶单元中D8位(TF位),然后再用POPF指令把堆栈中修改过的内容送回标志寄存器。
这样,只有TF位被改变,其它标志位不变。
4.输入/输出指令(累加器专用传送指令)输入/输出数据传送指令简称I/O指令,共两条,一条是输入指令IN,另一条是输出指令OUT。
I/O指令用来完成累加器AL/AX与I/O端口问的数据传送,指令中给出I/O端口的地址,当端口地址值≤255时,端口地址由指令中直接给出,当端口地址值≥256时用间接方式,先将端口地址位置于DX中,然后指令中用DX作间址方式表示。
因此,I/O指令有两种格式。
(1)IN输入指令指令格式:直接方式(长格式):IN AL,端口地址;字节(8位)传送IN AX,端口地址;字(16位)传送间接方式(短格式):IN AL,DX ;端口地址放在DX寄存器中IN AX,DX指令功能:将端口地址中的8位或16位数传送到AL或AX中,将端口中的16位数输入时,先将指定端口中的字节数送入AL中,再将端口地址+1,然后将该端口中的字节数送入A H中。
由上可知,IN指令有两种格式,当端口地址为00~FFH时用直接方式,端口地址值包含在指令中;当端口地址为0000~FFFFH时,用间接方式,即先将端口地址放在DX中,指令中用DX代替端口地址。
注意,这时指令的书写形式与寄存器寻址方式相似,但这里实际上是间址方式。
例:IN AL,02FH ;将02FH端口的一个字节数送入ALIN AX,060H ;将060H端口的内容送AL,将061H端口的内容送AHMOV DX,300H ;先将端口地址300H送人DX中IN AL,DX ;将300H端口的内容送入AL中(2)OUT输出指令指令格式:直接方式:OUT端口地址,AL ;字节(8位)输出OUT端口地址,AX ;字(16位)输出间接方式:OUT DX,AL ;DX中为端口地址OUT DX.AX指令功能:将累加器(AL/AX)中的内容输出传送到指定的I/O端口中。