数据传送指令

合集下载

数据传送类指令

数据传送类指令

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所指示的位置,高字节在较高地址单元,低字节在较低地址单元中(真正的栈顶单元)。

数据传送类指令

数据传送类指令

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)立即数不能作为目的操 作数。

第3节1数据传送指令

第3节1数据传送指令

长格式: OUT PORT, AL (字节)
OUT PORT, AX (字)
执行操作:( PORT ) (AL)
(字节)
( PORT+1, PORT ) (AX)(字)
短格式: OUT DX, AL (字节)
OUT DX, AX (字)
执行操作:( (DX) ) (AL)
(字节)
( (DX)+1, (DX) ) (AX)(字)
SRC是源操作数,可以是寄存器、存储单元或立即数。
(1)立即数传送给通用寄存器或存储单元 例如:MOV BL,44 MOV AX,3450H MOV WORD PTR [DI],2178H MOV BYTE PTR [DI],32H
ቤተ መጻሕፍቲ ባይዱ注意
不影响标志位。 立即数、CS和IP不能 做目的操作数
(2) 通用寄存器之间相互传送 MOV SI,DI MOV AL,BH
例: IN AX, 28H MOV DATA_WORD, AX
;IN BX,28H?
例: MOV DX, 3FCH IN AX, DX
例: OUT 5, AL;与MOV 5, AL比较
例:测试某状态寄存器(端口号27H)的第2位是否为1
IN
AL, 27H
TEST AL, 00000100B
JNZ ERROR
重点关注:
• 指令的汇编格式 • 指令的基本功能 • 指令支持的寻址方式 • 指令的执行对标志位的影响 • 指令的特殊要求
3.3 8086指令系统
3.3.1数据传送指令
数据传送指令的功能是将数据、地址或立即数传送到寄存器或存储单元中。
1.通用数据传送指令 格式: MOV DST ,SRC

数据传送指令

数据传送指令
PUSH DS PUSH AX PUSH MARK[SI]
3.2.1数据传送指令
(4) 格式:POP DST 操作:(DST)←((SP+1),(SP)),(SP)←(SP)+2 先出栈,后指针加2,按字取出。目标操作数DST的寻址方式为 立即寻址方式之外的所有存储器操作数寻址方式和寄存器寻址
POP AX POP [BX+SI]
3.2.1数据传送指令
(5) 该指令把存储器操作数的有效地址送到指定的寄存器中。 格式: LEA REG,SRC 操作:(REG)←SRC,即把源操作数(SRC应是存储器操 作数)的有效地址送到指定的寄存器中(REG LEA DX,[BX+SI+0B62H] 执行前:(BX)=3000H,(SI)=00C3H 执行后:(DX)=3000H+00C3H+0B62H=3C25H(有效地址
操作:(AL)←[(DX)](字节);(AX)←[(DX)+1,(DX)](字)
3.2.1数据传送指令
(2)
格式Ⅰ:OUT PORT ,AL OUT PORT ,AX ;字输出
操作:(PORT) ←AL(字节);(PORT+1,PORT)←AX
格式Ⅱ:OUT AL, DX OUT AX, DX
操作:[(DX)] ←(AL)(字节),[(DX)+1,(DX)] ←(AX)(字)IN/OUT 指令有两种格式,选择哪一种,取决于 外部设备端口地址的宽度。格式Ⅰ指令有两个字节,称长格式, 格式II指令只有一个字节,称短格式。
3.2.1数据传送指令
3. (1) LAHF
格式: LAHF 操作:(AH)←(PSW的低字节),即标志寄存器 (PSW)的低字节传送到AH (2) SAHF 格式:SAHF 操作:(PSW的低字节)←(AH),即将AH 寄存器的内

数据传送类指令

数据传送类指令

【例】: 设内部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)

微机原理常用命令

微机原理常用命令

一、数据传输指令它们在存贮器和寄存器、寄存器和输入输出端口之间传送数据。

1. 通用数据传送指令MOV 传送字或字节.MOVSX 先符号扩展,再传送.MOVZX 先零扩展,再传送.PUSH 把字压入堆栈.POP 把字弹出堆栈.PUSHA 把AX,CX,DX,BX,SP,BP,SI,DI依次压入堆栈.POPA 把DI,SI,BP,SP,BX,DX,CX,AX依次弹出堆栈.PUSHAD 把EAX,ECX,EDX,EBX,ESP,EBP,ESI,EDI依次压入堆栈.POPAD 把EDI,ESI,EBP,ESP,EBX,EDX,ECX,EAX依次弹出堆栈.BSWAP 交换32位寄存器里字节的顺序XCHG 交换字或字节.( 至少有一个操作数为寄存器,段寄存器不可作为操作数) CMPXCHG 比较并交换操作数.( 第二个操作数必须为累加器AL/AX/EAX ) XADD 先交换再累加.( 结果在第一个操作数里)XLAT 字节查表转换.── BX 指向一张256 字节的表的起点, AL 为表的索引值(0-255,即0-FFH); 返回AL 为查表结果. ( [BX+AL]->AL )2. 输入输出端口传送指令.IN I/O端口输入. ( 语法: IN 累加器, {端口号│DX} )OUT I/O端口输出. ( 语法: OUT {端口号│DX},累加器)输入输出端口由立即方式指定时, 其范围是0-255; 由寄存器DX 指定时,其范围是0-65535.3. 目的地址传送指令.LEA 装入有效地址.例: LEA DX,string ;把偏移地址存到DX.LDS 传送目标指针,把指针内容装入DS.例: LDS SI,string ;把段地址:偏移地址存到DS:SI.LES 传送目标指针,把指针内容装入ES.例: LES DI,string ;把段地址:偏移地址存到ES:DI.LFS 传送目标指针,把指针内容装入FS.例: LFS DI,string ;把段地址:偏移地址存到FS:DI.LGS 传送目标指针,把指针内容装入GS.例: LGS DI,string ;把段地址:偏移地址存到GS:DI.LSS 传送目标指针,把指针内容装入SS.例: LSS DI,string ;把段地址:偏移地址存到SS:DI.4. 标志传送指令.LAHF 标志寄存器传送,把标志装入AH.SAHF 标志寄存器传送,把AH内容装入标志寄存器.PUSHF 标志入栈.POPF 标志出栈.PUSHD 32位标志入栈.POPD 32位标志出栈.二、算术运算指令ADD 加法.ADC 带进位加法.INC 加1.AAA 加法的ASCII码调整.DAA 加法的十进制调整.SUB 减法.SBB 带借位减法.DEC 减1.NEC 求反(以0 减之).CMP 比较.(两操作数作减法,仅修改标志位,不回送结果).AAS 减法的ASCII码调整.DAS 减法的十进制调整.MUL 无符号乘法.IMUL 整数乘法.以上两条,结果回送AH和AL(字节运算),或DX和AX(字运算), AAM 乘法的ASCII码调整.DIV 无符号除法.IDIV 整数除法.以上两条,结果回送:商回送AL,余数回送AH, (字节运算);或商回送AX,余数回送DX, (字运算).AAD 除法的ASCII码调整.CBW 字节转换为字. (把AL中字节的符号扩展到AH中去)CWD 字转换为双字. (把AX中的字的符号扩展到DX中去)CWDE 字转换为双字. (把AX中的字符号扩展到EAX中去) CDQ 双字扩展. (把EAX中的字的符号扩展到EDX中去) 三、逻辑运算指令AND 与运算.or 或运算.XOR 异或运算.NOT 取反.TEST 测试.(两操作数作与运算,仅修改标志位,不回送结果).SHL 逻辑左移.SAL 算术左移.(=SHL)SHR 逻辑右移.SAR 算术右移.(=SHR)ROL 循环左移.ROR 循环右移.RCL 通过进位的循环左移.RCR 通过进位的循环右移.以上八种移位指令,其移位次数可达255次.移位一次时, 可直接用操作码. 如SHL AX,1.移位>1次时, 则由寄存器CL给出移位次数.如MOV CL,04SHL AX,CL四、串指令DS:SI 源串段寄存器:源串变址.ES:DI 目标串段寄存器:目标串变址.CX 重复次数计数器.AL/AX 扫描值.D标志0表示重复操作中SI和DI应自动增量; 1表示应自动减量.Z标志用来控制扫描或比较操作的结束.MOVS 串传送.( MOVSB 传送字符. MOVSW 传送字. MOVSD 传送双字. )CMPS 串比较.( CMPSB 比较字符. CMPSW 比较字. )SCAS 串扫描.把AL或AX的内容与目标串作比较,比较结果反映在标志位.LODS 装入串.把源串中的元素(字或字节)逐一装入AL或AX中.( LODSB 传送字符. LODSW 传送字. LODSD 传送双字. )STOS 保存串.是LODS的逆过程.REP 当CX/ECX<>0时重复.REPE/REPZ 当ZF=1或比较结果相等,且CX/ECX<>0时重复.REPNE/REPNZ 当ZF=0或比较结果不相等,且CX/ECX<>0时重复.REPC 当CF=1且CX/ECX<>0时重复.REPNC 当CF=0且CX/ECX<>0时重复.五、程序转移指令1>无条件转移指令(长转移)JMP 无条件转移指令CALL 过程调用RET/RETF过程返回.2>条件转移指令(短转移,-128到+127的距离内)( 当且仅当(SF XOR OF)=1时,OP1<OP2 )JA/JNBE 不小于或不等于时转移.JAE/JNB 大于或等于转移.JB/JNAE 小于转移.JBE/JNA 小于或等于转移.以上四条,测试无符号整数运算的结果(标志C和Z).JG/JNLE 大于转移.JGE/JNL 大于或等于转移.JL/JNGE 小于转移.JLE/JNG 小于或等于转移.以上四条,测试带符号整数运算的结果(标志S,O和Z).JE/JZ 等于转移.JNE/JNZ 不等于时转移.JC 有进位时转移.JNC 无进位时转移.JNO 不溢出时转移.JNP/JPO 奇偶性为奇数时转移.JNS 符号位为"0" 时转移.JO 溢出转移.JP/JPE 奇偶性为偶数时转移.JS 符号位为"1" 时转移.3>循环控制指令(短转移)LOOP CX不为零时循环.LOOPE/LOOPZ CX不为零且标志Z=1时循环.LOOPNE/LOOPNZ CX不为零且标志Z=0时循环.JCXZ CX为零时转移.JECXZ ECX为零时转移.4>中断指令INT 中断指令INTO 溢出中断IRET 中断返回5>处理器控制指令HLT 处理器暂停, 直到出现中断或复位信号才继续.WAIT 当芯片引线TEST为高电平时使CPU进入等待状态.ESC 转换到外处理器.LOCK 封锁总线.NOP 空操作.STC 置进位标志位.CLC 清进位标志位.CMC 进位标志取反.STD 置方向标志位.CLD 清方向标志位.STI 置中断允许位.CLI 清中断允许位.六、伪指令DW 定义字(2字节).PROC 定义过程.ENDP 过程结束.SEGMENT 定义段.ASSUME 建立段寄存器寻址.ENDS 段结束.END 程序结束.七、处理机控制指令:标志处理指令CLC(进位位置0指令)CMC(进位位求反指令)STC(进位位置为1指令)CLD(方向标志置1指令)STD(方向标志位置1指令)CLI(中断标志置0指令)STI(中断标志置1指令)NOP(无操作)HLT(停机)WAIT(等待)ESC(换码)LOCK(封锁)。

汇编语言指令详解

汇编语言指令详解

汇编语言指令详解汇编语言是一种低级语言,它直接操作计算机的硬件。

与高级语言相比,汇编语言更具操作性,可以更精确地控制计算机的执行过程。

在编写汇编语言程序时,我们需要使用指令来完成各种操作,并且对不同的指令进行详细的了解。

本文将详细介绍一些常用的汇编语言指令及其功能。

一、数据传输指令数据传输指令用于在寄存器间传输数据或将数据从寄存器传送到内存中。

常用的数据传输指令包括MOV、LDA、STA等。

MOV指令用于将数据从一个寄存器传送到另一个寄存器。

例如,MOV AX, BX表示将寄存器BX中的数据传送到寄存器AX中。

LDA指令用于将一个内存单元的数据传送到累加器中。

例如,LDA 1000H将内存单元1000H中的数据传送到累加器中。

STA指令用于将累加器的数据传送到一个内存单元中。

例如,STA 2000H将累加器中的数据传送到内存单元2000H中。

二、算术运算指令算术运算指令用于对数据进行加、减、乘、除等运算操作。

常用的算术运算指令包括ADD、SUB、MUL、DIV等。

ADD指令用于将两个操作数相加,并将结果存储在目的操作数中。

例如,ADD AX, BX表示将寄存器AX和寄存器BX的数据相加,并将结果存储在寄存器AX中。

SUB指令用于将目的操作数减去源操作数,并将结果存储在目的操作数中。

例如,SUB AX, BX表示将寄存器AX减去寄存器BX的数据,并将结果存储在寄存器AX中。

MUL指令用于执行无符号整数乘法运算。

例如,MUL AX, BX表示将寄存器AX和寄存器BX的数据相乘,并将结果存储在寄存器AX 中。

DIV指令用于执行无符号整数除法运算。

例如,DIV AX, BX表示将寄存器AX的数据除以寄存器BX的数据,并将商存储在寄存器AX 中,余数存储在寄存器DX中。

三、逻辑运算指令逻辑运算指令用于对数据进行逻辑操作,如与、或、非、位移等。

常用的逻辑运算指令包括AND、OR、NOT、SHL等。

AND指令用于对两个操作数执行位与操作,并将结果存储在目的操作数中。

汇编常用指令

汇编常用指令

汇编常用指令1. 前言汇编语言是一种低级别的计算机语言,它是由一些指令组成的。

指令是一条计算机执行的命令,从基本上讲,这些指令代表着标准的操作,例如加、减、乘、除、移位和比较等。

汇编语言可以通过编写程序来控制一个计算机的行为,这些程序通常被称为汇编程序。

本文将介绍汇编语言中一些常用的指令。

2. 数据传送指令数据传送指令是汇编语言中最基本的指令之一,它主要用来将数据从一个位置传送到另一个位置。

在汇编语言中,数据传送指令通常使用MOV语句来实现。

下面是一些常用的数据传送指令:- MOV AX, BX:将BX中存储的数据传送到AX中。

- MOV AX, [BX]:将BX中存储的地址所指向的数据传送到AX中。

- MOV [BX], AX:将AX中存储的数据传送到BX所指向的地址中。

3. 算术运算指令算术运算指令主要用来执行各种数学运算,例如加法、减法、乘法和除法等操作。

下面是一些常用的算术运算指令:- ADD AX, BX:将BX中存储的数据与AX中存储的数据相加,并将结果存储在AX中。

- SUB AX, BX:将BX中存储的数据从AX中存储的数据中减去,并将结果存储在AX中。

- MUL BX:将AX中存储的数据与BX中存储的数据相乘,并将结果存储在AX中。

- DIV BX:将AX中存储的数据除以BX中存储的数据,并将结果存储在AX和DX中。

4. 位运算指令位运算是一种在二进制数字级别上的运算,它可以执行各种位操作,例如AND、OR、XOR和NOT等操作。

下面是一些常用的位运算指令:- AND AX, BX:将BX中存储的数据与AX中存储的数据按位进行AND运算,并将结果存储在AX中。

- OR AX, BX:将BX中存储的数据与AX中存储的数据按位进行OR 运算,并将结果存储在AX中。

- XOR AX, BX:将BX中存储的数据与AX中存储的数据按位进行XOR运算,并将结果存储在AX中。

- NOT AX:将AX中存储的数据按位进行取反操作。

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

1、指令
MOV @Ri, A
MOV @Ri,#data
MOV @Ri,direct
2、功能
将源操作数送入以R0或R1的内容为地址的 存储单元
3、源操作数寻址方式
立即寻址、直接寻址、寄存器寻址
.
17
例题 例1 若(R1)=56H,(A)=35H
执行MOV @R1,A 指令,则56H的内容为多少 结果:(56H)=35H 例2 若(R1)=35H,执行 MOV @R1,#40H 指令 则35H的内容为多少 结果:(35H)=40H
3、源操作数寻址方式
有立即寻址、直接寻址、寄存器寻址、寄 存器间接寻址
.
13
例题 例题1 若(A)=78H,执行指令MOV 64H,A
则64H及A的内容为多少 (64H)=78H,(A)=78H
例2若 执行MOV 30H,#29H 指令则30H的内 容为多少 结果:(30H)=29H
.
14
例3 若(R0)=30H 执行MOV 30H,R0 指令,则30H的内容为多少
结果:(30H)=30H 例4 若(50H)=30H 执行MOV 20H,50H 指令
则20H的内容为多少 结果:(20H)=30H
.
15
例5设(30H)=40H,(R0)=36H,
(36H)=52H,执行指令MOV 30H,@R0 则 30H的内容为多少
(30H)=52H
.
16
以@Ri为目的操作数的指令
例3 若(R1)=20H,(30H)=70H
执行 MOV @R1,30H 指令则20H的内容为多少
结果:(20H)=70H .
18
1、若(23H)= 30H,执行 MOV R6,23H 则 R6的内容为多少,该指令的寻址方式是什么?
2、若执行MOV R3,#24H , 则结果:(R3) =?
3、若(40H)=34H ,执行MOV A ,40H, 则结果: (A)=?
.
20
用户RAM区或堆栈区(见教材P49)
• 供用户使用的一般RAM区,共有80个单 元,其单元地址为30H~7FH。在一般应用 中常把堆栈开辟在此区中。MCS—51单片机 堆栈区不是固定的, 原则上可设在内部RAM 的任意区域内, 但为了避开工作寄存器区 和位寻址区, 一般设在30H以后的范围内。
.
21
• 特殊功能寄存器包括累加器ACC、B寄存 器、程序状态字寄存器PSW、堆栈指针SP、 数据指针DPTR等
.பைடு நூலகம்
22
堆栈操作指令(2条)
• 在MCS-51片内RAM中可以设定一个后进 先出的堆栈,地址为30H—7FH。堆栈操作 包括进栈PUSH和出栈POP。
.
23
进栈操作指令 PUSH direct 这条指令首先将堆栈指针SP + 1,然后把直 接地址里的内容传送到堆栈指针SP指出的 片内RAM存储单元中。
.
19
作业:
1、若(R1)= 30H,(30H)= 68H,执行 MOV A,@R1,则A的内容为多少,源操作数 的寻址方式是什么?
2、若执行MOV R1,#20H ,则R1的内容为多少
3、若(64H)=70H,(A)=78H,执行指令MOV 64H,A 则64H及A的内容为多少
4、若(R1)=35H,执行 MOV @R1,#40H 指 令则35H的内容为多少
(R1)=23H
.
11
以direct 为目的操作数的指令
1、指令 MOV direct, @Rn MOV direct,A MOV direct,#data MOV direct,Rn MOV direct,direct
.
12
2、功能
把源操作数送入由直接地址指向的存储 单元,直接寻址时,direct可以是特殊功能 寄存器的地址、内部RAM区的地址,因此, 允许对端口直接操作。
例2若执行 MOV A,#12H ,则A的内容为多少,
源操作数的寻址方式是什么?
则结果:(A)=12H
.
8
例3若(40H)
=20H ,执行
.
9
以Rn 为目的操作数的指令
1、指令
MOV Rn,direct
MOV Rn,#data
MOV Rn,A
2、功能
将源操作数的内容送入当前工作寄存器区 的R0-R7中的某一个寄存器。
.
24
例题1 若(SP)=07H,(40H)=88H 执行 PUSH 40H 指令
结果:(SP)=08H,(08H)=88H
例题2 设(SP)=30H,(ACC)=60H,
3、源操作数寻址方式
立即寻址、直接寻址、寄存器寻址
.
10
例题 例1若(60H)= 30H,执行 MOV R6,60H ,则R6
的内容为多少 (R6)= 30H
例2 若执行MOV R1,#20H ,则R1的内容为多少 (R1)=20H
例3 若(A)=23H,执行MOV R1,A ,则R1的内 容为多少
内RAM和SFR内进行,也可以在累加器Acc和
片外存储器之间进行。指令必须指定传送
数据的源地址和目的地址,以便机器在执
行指令时把源地址中的内容传送到目的地
址中,但不改变源地.址中的内容。
3
• MCS-51单片机的数据传送指令共有28条, 分为内部数据传送指令、外部数据传送指 令、堆栈操作指令和数据交换指令等四类。
.
4
内部数据传送指令(15条)
• 以A为目的操作数的指令 • 以Rn 为目的操作数的指令 • 以direct 为目的操作数的指令 • 以@Ri为目的操作数的指令
.
5
以A为目的操作数的指令
1、格式 MOV 目的操作数,源操作数
2、指令 MOV A,Rn MOV A,direct1 MOV A,#data MOV A,@Ri
3-3数据传送指令
.
1
1、学习以A为目的操作数的指令的功能及其应用 2、学习以Rn 为目的操作数的指令的功能及其应用 3、学习以direct 为目的操作数的指令的功能及其应用 4、学习以@Ri为目的操作数的指令的功能及其应用
.
2
• 在MCS-51单片机中,数据传送是最基本
和最主要的操作。数据传送操作可以在片
.
6
3、指令功能 把源操作数的内容送入累加器Acc
4、源操作数寻址方式 有立即寻址、直接寻址、寄存器寻址、寄
存器间接寻址等寻址方式
.
7
例1若(R1)=20H,(20H)=65H, 执行MOV A , Rn
则A的内容为多少,源操作数的寻址方式是什 么? 则结果:(A)=65H 寻址方式: 寄存器寻址方式
相关文档
最新文档