寻址方式与数据传送

合集下载

第3章 STC15单片机的指令系统

第3章  STC15单片机的指令系统

;进位位C与30H位相与,结果保存在C中 ;进位位C送35H位 ;20H位置1
单片机原理与接口技术————基于STC15系列的51单片机原理
第3章 STC15单片机的指令系统
七、 相对寻址
在相对寻址的转移指令中,转移指令的所在的PC值加上其指令的字节数构成了 程序转移的目的地址。
目的地址表达式: 目的地址=转移指令地址+转移指令字节数+偏移量
据传送指令不影响标志C、AC和OV(除非以PSW为目的的指 令),但可能会对奇偶标志P有影响。
单片机原理与接口技术————基于STC15系列的51单片机原理
第3章 STC15单片机的指令系统
一、 内部数据传送指令
以累加器A为目的操作数的指令
MOV A,data ;直接寻址 ,(data)→(A), 直接单元地址中的内容送到累加器A
一、 STC15单片机指令格式
1. 机器指令与汇编指令
机器指令:二进制代码形式,是CPU唯一能识
别和处理的指令
11101000
汇编指令:将机器指令用类似于英文的助记符
表示。
MOV A,R0
单片机原理与接口技术————基于STC15系列的51单片机原理
第3章 STC15单片机的指令系统
4
一、 STC15单片机指令格式
2. 操作数与操作码
操作数:操作的对象。
操作码:指令执行的操作
MOV A,R0
源操作数
目的操作数
单片机原理与接口技术————基于STC15系列的51单片机原理
第3章 STC15单片机的指令系统
一、 STC15单片机指令格式
4. 汇编语言的语句格式
[标号:] 操作码助记符 [目的操作数][,源操作数][;注释] AGAIN: MOV A,R0 ;把R0的内容送累加器A

寻址方式与数据传送

寻址方式与数据传送

数据传送的未来发展
数据传送将更加高速化
随着5G、6G等新一代通信技术的不断发展,数据传送速度将得到 大幅提升,满足用户对高速数据传输的需求。
数据传送将更加安全可靠
随着网络安全技术的不断发展,数据传送将更加安全可靠,保障用 户数据的安全性和隐私性。
数据传送将更加智能化
随着人工智能技术的不断发展,数据传送将更加智能化,能够根据 用户的需求和习惯进行智能推荐和个性化服务。
间接寻址
操作数的有效地址通过寄存器间接给出,如指令"MOV AX, [BX]"。优点是灵活性较高,缺点是增加了指令长度 。
变址寻址
操作数是变址寄存器的值加上位移量,如指令"MOV AX, [BX+DI-2]"。优点是可实现数组元素的动态修改,缺点 是计算有效地址较复杂。
数据传送的比较
数据传送不通过专门的传送指令实现,而是在其他指 令中隐含着数据传送操作,如加减乘除指令等。优点
是简化了指令系统,缺点是灵活性较差。
输入 标题
立即传送
数据被直接包含在指令中,如指令"MOV AX, 100"。 优点是简单直观,缺点是灵活性较差。
隐式传送
寄存器传送
数据被存放在内存单元中,通过内存单元间接传送, 如指令"MOV AX, [BX]"。优点是可实现大容量数据 传送,缺点是速度较慢。
内存传送
直接寻址
指令直接给出操作数的有效地 址,如:MOV AX, [BX]
基址寻址
操作数的有效地址由基址寄存 器和位移量给出,如:MOV AX, [BX+SI]
相对寻址
操作数的有效地址是程序计数 器的值,如:MOV AX, [BX+PC]

[物理]单片机3第三章寻址方式

[物理]单片机3第三章寻址方式
单片机原理及应用
北京化工大学 信息科学与技术学院 郭 青
1
第三章
本章重点
寻址方式
80C51指令系统
指令格式
操作结果及对标志位影响
3.1
111条指令
概述
29 24 24 17
数据传送类指令 数学运算类指令
分类
逻辑运算类指令 控制转移类指令
位操作指令
17
单字节指令 按指令长度分类
双字节指令
三字节指令 12个振荡周期 64
COUNT:PUSH DPH; 保护DPTR内容
PUSH DPL;
MOV DPTR,#TABLE ;赋表首地址给DPTR
MOVC A, @A+DPTR
; POP DPL; 根据A中内容查表 恢复DPTR内容 返回主程序
POP DPH
RET;
ORG 1000H TABLE:DB 00 DB 01 DB 04 DB 09 DB 16 DB 25 DB 36 DB 49 DB 64 DB 81
19
3.3.1 数据传送类指令
按操作方式,分为三种: 数据传送 数据交换 栈操作
一、普通传送类指令 格式: MOV (目的操作数),(源操作数) 操作码助记符 操作: 将源操作数单元内容,传送到目的操作数 单元中,源操作数内容不变。不影响标志 位Cy,AC和OV。
操作数的组合关系
1、立即数的传送 MOV A, #data MOV Rn, #data (A) (Rn) #data #data
d:MOV direct,#data
将8位立即数送入由direct直接寻址的地 址单元中。 direct:00H~FFH,8位二进制地址码
寻址内部RAM(00H~7FH)及SFR

汇编语言第3章 指令系统和寻址方式

汇编语言第3章 指令系统和寻址方式

5.寄存器相对寻址方式(register relative addressing)
EA=基址(base) 或变址( index)+偏移量 (displacement)
基址寄存器有:BX,BP 变址寄存器有:SI,DI 注:默认段是数据段和堆栈段
(SI) 物理地址=(DS)*16+(BX)+displacement
(DI) =(SS)*16+(BP)+ (SI)+displacement (DI)
例:mov AX,ARRAY[BX][DI] (DS)=1000H,(BX)=1200H, (DI)=1000H, ARRAY=1000H 物理地址=DS*16+(BX)+(DI)+ARRAY =DS*16+1200+1000+1000=13200H 若:(13200)=34H,(13201)=12H 则,(AX)=1234H 允许段超越。 例:mov AL,ES:ARRAY[BX][DI] 用途:处理成组数据(举例说明)
2.段内间接寻址(intrasegment indirect addressing) (IP)新=EA=寄存器或存储单元的内容 寄存器:所有寄存器寻址方式可用的寄存器 存储单元:所有存储单元寻址方式均适用 例:JMP SI (IP)=(SI) JMP WORD PTR VAR或简写JMP VAR (DS)=1000H,VAR=2000H 存储单元的物理地址=(DS)*16+VAR=12000H (12000H)=1234H 则,(IP)新=1234H
4.寄存器间接寻址方式(register indirect addressing)
EA=基址(base) 或变址( index) 基址寄存器有:BX,BP 变址寄存器有:SI,DI 注:默认段是数据段和堆栈段 (SI) 物理地址=(DS)*16+(BX) (DI) =(SS)*16+(BP)

七种寻址方式

七种寻址方式

七种寻址方式1、立即寻址方式:操作数就包含在指令中。

作为指令的一部分,跟在操作码后存放在代码段。

这种操作数成为立即数。

立即数可以是8位的,也可以是16位的。

例如:指令: MOV AX,1234H则: AX = 1234H2、寄存器寻址方式:操作数在CPU内部的寄存器中,指令指定寄存器号。

对于16位操作数,寄存器可以是:AX、BX、CX、DX、SI、DI、SP 和BP等。

对于8位操作数,寄存器可以是AL 、AH、BL、BH、CL、CH、DL、DH。

这种寻址方式由于操作数就在寄存器中,不需要访问存储器来取得操作数因而可以取得较高的运算数度。

3、直接寻址方式:操作数在寄存器中,指令直接包含有操作数的有效地址(偏移地址)注:操作数一般存放在数据段所以操作数的地址由DS加上指令中直接给出的16位偏移得到。

如果采用段超越前缀,则操作数也可含在数据段外的其他段中。

例如:MOV AX,[8054]如(DS) = 2000H,则执行结果为(AX) = 3050H(物理地址=20000+8054=28054H)28054H里的内容为3050H在汇编语言指令中,可以用符号地址代替数值地址如:MOV AX,VALUE此时VALUE为存放操作数单元的符号地址。

如写成:MOV AX,[VALUE]也是可以的,两者是等效的。

如VALUE在附加段中,则应指定段超越前缀如下:MOV AX,ES:VALUE 或MOV AX,ES:[VALUE]4、寄存器间接寻址方式:操作数在寄存器中,操作数有效地址在SI、DI、BX、BP这四个寄存器之一中。

在一般情况下,如果有效地址在SI、DI和BX中,则以DS段寄存器中的内容为段值。

如果有效地址在BP中,则以SS段寄存器中的内容为段值例如:MOV AX,[SI]如果(DS) = 5000H (SI) = 1234H则物理地址= 50000 + 1234 = 51234H51234H地址中的内容为:6789H执行该指令后,(AX) = 6789H5、寄存器相对寻址方式:操作数在存储器中,操作数的有效地址是一个基址寄存器(BX、BP)或变址寄存器(SI、DI)的内容加上指令中给定的8位或16位位移量之和BX 8位位移量EA(有效地址) = BP +SI 16位位移量DI在一般情况下,如果SI、DI、或BX中的内容作为有效地址的一部分,那么引用的段寄存器是DS;如果BP中的内容作为有效地址的一部分,那么引用的段寄存器是SS。

Zigbee四种寻址方式

Zigbee四种寻址方式

Zigbee四种寻址方式2010-02-25 14:411、单点传送(Unicast)Uicast 是标准寻址模式,它将数据包发送给一个已经知道网络地址的网络设备。

将afAddrMode 设置为Addr16Bit 并且在数据包中携带目标设备地址。

2、间接传送(Indirect)当应用程序不知道数据包的目标设备在哪里的时候使用的模式。

将模式设置为AddrNotPresent 并且目标地址没有指定。

取代它的是从发送设备的栈的绑定表中查找目标设备。

这种特点称之为源绑定。

当数据向下发送到达栈中,从绑定表中查找并且使用该目标地址。

这样,数据包将被处理成为一个标准的单点传送数据包。

如果在绑定表中找到多个设备,则向每个设备都发送一个数据包的拷贝。

上一个版本的ZigBee(ZigBee04),有一个选项可以讲绑定表保存在协调器(Coordinator)当中。

发送设备将数据包发送给协调器,协调器查找它栈中的绑定表,然后将数据发送给最终的目标设备。

这个附加的特性叫做协调器绑定(Coordinator Binding)。

通往无线桥梁无线世界的先锋3、广播传送(broadcast)当应用程序需要将数据包发送给网络的每一个设备时,使用这种模式。

地址模式设置为AddrBroadcast。

目标地址可以设置为下面广播地址的一种:NWK_BROADCAST_SHORTADDR_DEV ALL(0xFFFF)——数据包将被传送到网络上的所有设备,包括睡眠中的设备。

对于睡眠中的设备,数据包将被保留在其父亲节点直到查询到它,或者消息超时(NWK_INDIRECT_MSG_TIMEOUT 在f8wConifg.cfg 中)。

NWK_BROADCAST_SHORTADDR_DEVRXON(0xFFFD)——数据包将被传送到网络上的所有在空闲时打开接收的设备(RXONWHENIDLE),也就是说,除了睡眠中的所有设备。

NWK_BROADCAST_SHORTADDR_DEVZCZR(0xFFFC)——数据包发送给所有的路由器,包括协调器。

数据的7种寻址方式

数据的7种寻址方式

第3章数据的7种寻址方式,包括指令的格式,功能,指令的正误判断。

20位物理地址的生成:将段地址添上一个0(十六进制),再加上偏移地址。

数据传送指令:MOV PUSH,POP,XCHG,LEA,IN,OUT1、MOV ,注意指令的正误判断,可从3点入手。

(1)指令格式(2)数据大小是否超出范围(3)类型是否匹配。

通常,不能在两个内存单元间直接传送,段寄存器间不能直接传送,立即数不能直接传送到段寄存器,不能用CS作目的操作数。

2、PUSH 入栈指令,先减后压。

不能对字节进行压栈操作。

3、POP 出栈指令,先弹后加,将栈顶的一个字弹出到目的操作数。

4、EXCHG 交换指令。

不能在两个内存单元间直接交换。

5、LEA 取有效地址指令。

6、IN 输入指令,当端口大于255时,要用DX来表示端口号。

7、OUT 输出指令,当端口大于255时,要用DX来表示端口号算术运算等指令1、ADD AL,[1000H]例:AL=85H,BL=79H,执行指令ADD AL,BLAL= 0FEH ,CF= 0 ,OF= 02、SUB AL,BL3、INC [1000H] ERRORINC BYTE PTR [1000H]INC WORD PTR [1000H]该指令不影响CF标志4、DEC [1000H] ERRORDEC BX5、NEG AL 求相反数例:Y=X,X>=0; Y=|X|,X<0,编写程序段实现该功能MOV AL,XCMP AL,0JGE Y1NEG ALY1:MOV Y,ALHLT编程序的思路:取数据,在CPU里做运算,存数据;如果数据较多,通常要设指针,再取数据,取完数据后,修改地址指针,又取下一个数据,循环下去。

6、CMP AL,BL无符号数,A表示大,B表示小,E表示相等。

有符号数,G表示大,L表示小,E表示相等。

例:CMP AX,BXJGE NEXTXCHG AX,BXNEXT: CMP AX,CXJGE DONEXCHG AX,CXDONE:该程序段的功能是找AX,BX,CX中最大的数,并把最大的数放在AX中。

概述CPU与外设数据传送的方式DMA控制器

概述CPU与外设数据传送的方式DMA控制器

3.基地址和基字节数寄存器 每一个通道有一对16位的基地址和基字节数寄存 器,它们存放着与现行寄存器相联系的初始值。 4.命令寄存器 这是一个8位寄存器,用以控制8237的工作。命令 字的格式如图8-24所示。
5.模式寄存器 每一个通道有一个6位的模式寄存器以规定通道的 工作模式,如图8-26所示。 在编程时用最低两位来选择写入哪个通道的模式 寄存器。
状态信息和控制信息与数据是不同性质的信息, 必 须 要 分 别 传 送 。 但 在 大 部 分 微 型 机 中 ( 8086 也 如 此),只有通用的IN和OUT指令,因此,外设的状态 也必须作为一种数据输入;而CPU的控制命令也必须 作为一种数据输出。所以,一个外设往往要几个端口 地址,CPU寻址的是端口,而不是笼统的外设。
寄存器;在输出时,若外设已把上一个数据输出,输 出寄存器已空,由外设向CPU 发出中断请求,CPU就 暂停原执行的程序( 即实现中断),转去执行输入或
输出操作(中断服务),待输入输出操作完成后即返 回,CPU再继续执行原来的程序。这样就可以大大提 高CPU的效率,而且允许CPU与外设(甚至多个外设) 同时工作。
2.块传送方式 在这种传送方式下,8237由DREQ启动后就连续 地传送数据,直至字节数计数器减到零产生TC
(Terminal Count),或者由外部输入有效的 EOP
信号来终结DMA传送。
3.请求传送方式 在这种工作方式下,8237可以进行连续的数据传 送。当出现以下三种情况之一时停止传送。 (1)字节数计数器减到0,发生TC;
这种查询输入方式的程序流程图,如图8-11所示。
2.查询式输出 同样的,在输出时CPU也必须了解外设的状态, 看外设是否有空(即外设不是正处在输出状态,或外 设的数据寄存器是空的,可以接收CPU输出的信息), 若有空,则CPU执行输出指令,否则就等待。 查询式输出的程序流程图如图8-14所示。

数据寻址方式介绍

数据寻址方式介绍

数据寻址方式介绍1.直接寻址:直接寻址是最简单的寻址方式,它是通过给定一个地址来访问数据。

在这种寻址方式中,数据的地址就是其在计算机存储器中的实际物理地址。

这种寻址方式的优点是实现简单,访问速度快,但缺点是地址空间受限,不适用于大型的存储器系统。

2.间接寻址:间接寻址是通过一个地址来访问另一个存储区域,而在这个存储区域中包含着最终需要访问的数据地址。

这种寻址方式的优点是可以将多个数据存放在同一个存储区域中,有效地利用存储空间。

它也提供了更灵活的寻址方式,可以通过更改间接地址来访问不同的数据。

缺点是增加了访问数据的时间,因为需要多次访问存储器。

3.寄存器寻址:寄存器寻址是直接将数据存储在处理器的寄存器中,然后通过寄存器来访问数据。

这种寻址方式的优点是访问速度非常快,因为数据直接存储在处理器中。

缺点是寄存器数量有限,无法存储大量的数据。

4.堆栈寻址:堆栈寻址是通过使用一个堆栈来存储数据,并通过堆栈指针来定位需要访问的数据。

在这种寻址方式中,栈指针会向栈的一个方向移动,将数据压入堆栈或弹出堆栈。

堆栈寻址的优点是可以灵活地向堆栈中添加或删除数据,适用于函数调用和中断处理。

缺点是访问数据的时间会较长,因为需要不断地移动栈指针。

5.直接偏移寻址:直接偏移寻址是通过给定一个基础地址和一个偏移量来访问数据。

在这种寻址方式中,基础地址是数据的起始地址,偏移量是相对于基础地址的位移距离。

通过将基础地址和偏移量相加,可以得到需要访问的数据地址。

这种寻址方式的优点是能够有效地使用地址空间,减少了寻址的时间。

缺点是需要额外的操作来计算数据的地址。

6.寄存器间接寻址:寄存器间接寻址是通过使用一个寄存器中存储的地址来访问数据。

在这种寻址方式中,寄存器中存储的地址就是需要访问的数据的地址。

这种寻址方式的优点是访问速度快,因为数据的地址存储在寄存器中。

缺点是寄存器数量有限,无法存储大量的地址。

7.基址寻址:基址寻址是通过给定一个基址和一个偏移量来访问数据。

单片机指令系统-第2讲寻址方式

单片机指令系统-第2讲寻址方式
MOVX
19
外部程序存储器ROM数据传送指令 MOVC A,@A+DPTR; A (A+DPTR) MOVC A ,@A+PC ;PC PC +1,A(A+PC)
专门用作查表,又称作查表指令。
20
外部数据存储器RAM数据传送指令
使用DPTR进行间接寻址 MOVX A,@DPTR MOVX @DPTR,A
2
MOVC A,@A+DPTR
程序存储区
A
DP TR
02 H
03H 00H


55 H
Σ

03 02H
03 02H
图3.5 变址寻址示意图
3
例3.6 MOVC A, @A+DPTR ;
00H
RAM
7FH DPL 00H DPH 24H
MOVC A, @A+DPTR
80H
2400H+0FH= 240FH
2) 源操作数与目的操作数不能相同(除 direct外);
3) 寄存器寻址与寄存器及其间址间不能相互传送。
数据传送类指令(28条)
(1)内部RAM数据传送指令(15条) (2)外部数据传送指令(7条)
(3)堆栈操作指令(2条)
(4)数据交换指令(4条)
(1)内部RAM数据传送指令(15条)
内部RAM是数据传送最为频繁的部分,这其中有 寄存器、累加器、RAM单元以及特殊功能寄存器之 间的相互数据传送。
17
内部RAM、SFR之间的传送MOV指令
Rn
dir
@Ri
MOV A , #data
dir
A
@Ri A
Rn,

7种寻址方式

7种寻址方式

7种寻址⽅式七种寻址⽅式1、(直接寻址⽅式)指令所要的操作数存放在内存中,在指令中直接给出该操作数的有效地址,这种寻址⽅式为直接寻址⽅式。

在通常情况下,操作数存放在数据段中,所以,其物理地址将由数据段寄存器DS和指令中给出的有效地址直接形成,但如果使⽤段超越前缀,那么,操作数可存放在其它段。

例:假设有指令:MOV BX, [1234H],在执⾏时,(DS)=2000H,内存单元21234H的值为5213H。

问该指令执⾏后,BX的值是什么?解:根据直接寻址⽅式的寻址规则,把该指令的具体执⾏过程⽤下图来表⽰。

从图中,可看出执⾏该指令要分三部分:由于1234H是⼀个直接地址,它紧跟在指令的操作码之后,随取指令⽽被读出;访问数据段的段寄存器是DS,所以,⽤DS的值和偏移量1234H 相加,得存储单元的物理地址:21234H;取单元21234H的值5213H,并按“⾼⾼低低”的原则存⼊寄存器BX中。

所以,在执⾏该指令后,BX的值就为5213H。

由于数据段的段寄存器默认为DS,如果要指定访问其它段内的数据,可在指令中⽤段前缀的⽅式显式地书写出来。

下⾯指令的⽬标操作数就是带有段前缀的直接寻址⽅式。

MOV ES:[1000H], AX直接寻址⽅式常⽤于处理内存单元的数据,其操作数是内存变量的值,该寻址⽅式可在64K字节的段内进⾏寻址。

注意:⽴即寻址⽅式和直接寻址⽅式的书写格式的不同,直接寻址的地址要写在括号“[”,“]”内。

在程序中,直接地址通常⽤内存变量名来表⽰,如:MOV BX, VARW,其中,VARW是内存字变量。

试⽐较下列指令中源操作数的寻址⽅式(VARW是内存字变量):MOV AX, 1234H MOV AX, [1234H] ;前者是⽴即寻址,后者是直接寻址MOV AX, VARW MOV AX, [VARW] ;两者是等效的,均为直接寻址2、(寄存器间接寻址⽅式)操作数在存储器中,操作数的有效地址⽤SI、DI、BX和BP等四个寄存器之⼀来指定,称这种寻址⽅式为寄存器间接寻址⽅式。

数据寻址方式

数据寻址方式
• 3.2.1 数据传送指令
• 1. 通用数据传输指令 • 数据传送指令可以实现数据、地址、标志的传送。除了目标地址为标
志寄存器的传送指令外,本组的其他指令不影响标志。
下一页 返回
3.2 数据运算指令
• (1)传送指令MOV(Move) • 格式:MOV DST, SRC • 功能:SRC(源)→DST(目标)。 • 说明:MOV 指令可以实现一个字节、一个字、一个双字(80386 以
• 即,EA=(基址寄存器)+(变址寄存器)+ disp • 80386 以上支持的32 位相对基址变址寻址方式组合如图3 − 4 所示。 • 6. 比例变址寻址方式 • 这种寻址方式是80386 以上的微处理器才提供的。
上一页 下一页 返回
3.1 数据寻址方式
• 操作数的有效地址由以下几部分相加得到:基址部分(8 个32 位通 用寄存器)、变址部分(除ESP 以外的32 位通用寄存器)乘以比例 因子、位移量(disp)。比例因子可以是1(默认值)、2、4 或8,1 可用来寻址字节数组,2 可用来寻址字数组,4 可用来寻址双字数组 ,8可用来寻址4 字数组。位移量可以是8 位、32 位的带符号数。默 认使用段寄存器的情况由所选用的基址寄存器决定。若使用ESP 或 EBP,默认与SS 配合;若使用其他32 位通用寄存器,默认与DS 配 合。允许使用段超越前缀。
上一页 下一页 返回
3.1 数据寻址方式
• 当计算操作数的物理地址时,要注意段基址和有效地址的来源,表3 − 1 给出了它们的配合情况。
• 段超越前缀格式为:段寄存器名:存储器寻址方式。 • 2. 寄存器间接寻址方式 • 操作数的有效地址在寄存器而操作数本身在存储器中的寻址方式称为
寄存器间接寻址方式。对于16 位寻址,这个寄存器只能是基址寄存 器BX、BP 或变址寄存器SI、DI;对于32位寻址,允许使用任何32 位通用寄存器。

微机原理 第三章1

微机原理 第三章1

(2)立即(数)寻址
② MOV AX,1234H
说明:这条指令的功能就是将立即数 1234H传送到寄存器AX中。 执行完该条指令后, AX=1234H
(3)寄存器寻址(Segment Addressing)
当操作数在寄存器中时为寄存器寻址(或称寄 存器直接寻址)。如: ① MOV AL,12H 说明:目的操作数AL即为寄存器寻址。
DS(BX的默认段)值
0000
Memory
ES值
SS(BP的默认段)值
CS值
BP: +)位移量:
0000 0000 0000
…… ××
0100 0000 0000 0000 0000 0000 0000 0010
20 位 物 理 地 址
MOV [SI]10 ,AH ( 设SI原值为008CH)
Bit 19 4 3 0
1、通用数据传送指令
(1)MOV指令 (2)PUSH和POP指令 (3)交换指令XCHG (4)换码指令XLAT
(1)MOV指令
是基本传送类指令,实现字或字节数据的 复制。
指令格式:MOV dst,src
指令功能:将源操作数src,传送到目的操作 数dst中。 如:MOV AL,12H
功能:执行指令就是将立即数12H传送到 AL中,执行完指令后AL=12H。
(6)寄存器相对寻址方式 使用基址寄存器(BX或BP)、并带位移 量的间接寻址。操作数EA=BX或BP值+位 移量。 例:MOV DL,[BP+2] 其它等效写法: MOV DL,[BP] 2 MOV DL,2 [BP]
MOV DL,[BP+2] ( 设BP原值为4000H)
Bit 19 4 3 0
汇编语言 用指令助记符表示机器码,例如对应于机器码 B8H、C3H的助记符为MOV AX,BX 。 CPU不同,机器码不同,助记符也不同。

汇编语言-寻址方式-地址和数据相关的寻址方式

汇编语言-寻址方式-地址和数据相关的寻址方式

汇编语⾔-寻址⽅式-地址和数据相关的寻址⽅式数据相关的寻址⽅式1 ⽴即寻址⽅式直接使⽤⽴即数来处理mov al,5mov ax,3064H2 寄存器寻址⽅式操作数在寄存器中,直接使⽤寄存器赋值来读取内部的操作数。

另外的⽅式的简介:在8086中把操作数的偏移地址称为有效地址,以下的操作都是取得有效地址(EA)的不同途径。

有效地址可以由以下四种成分:位移量(displacement):存放的是⼀个地址。

基址(base):基址部分,通常⽤来指数据段中数据或字符串的⾸地址变址(index):存放在变址寄存器中的内容。

通常⽤来访问数组中的某个元素或字符串的某个字符。

⽐例因⼦(scale factor):是386新增加的寻址⽅式的术语,值可为1,2,4,8在寻址中,可⽤变址寄存器内容乘以⽐例因⼦来取得变址值。

有效地址的计算公式可⽤由以下来处理:EA = 基址 + (变址 X ⽐例因⼦) + 位移量除了⽐例因⼦固定,其它三个都可以有正负。

四种成分16位寻址32位寻址位移量0,8,16位0,8,32位基址寄存器BX,BP任何32位通⽤寄存器变址寄存器SI,DI除ESP外的32位通⽤寄存器⽐例因⼦⽆1,2,4,8表格⼀默认段选择规则访存类型所⽤段及段寄存器却省选择规则指令代码段 CS寄存器⽤于取指堆栈堆栈段 SS寄存器所有的堆栈的进栈和出栈,任何⽤ESP或EBP作为基址寄存器的访问局部数据数据段 DS寄存器除相对于堆栈以及串处理指令的⽬的以外的所有数据访问⽬的串附加数据段 ES寄存器串处理指令的⽬的串表格⼆3 直接寻址⽅式操作数的有效地址只包含位移量这⼀种成分。

值就在代码段中指令的操作码之后。

也就是位移量就是操作数的有效地址。

;假设(ds) = 3050Hmov ax,[0000] ;就是把内存在3050:0000内存的数据传送到ax中也可以⽤符号地址代替数值地址⽐如mov ax,[VALUE];就是把value的3050:value将value替换为数据跟上⼀样也可以⽤指定段寄存器来作为段地址也是可以的。

指令系统

指令系统

19
2.1 数据传送指令(29条) 数据传送指令(29条 ——16位数据传送指令(1条) 16位数据传送指令(
MOV DPTR,#data16
——外部数据传送指令(4条) 外部数据传送指令(4条 数据传送指令(4
MOVX >,<源操作数> <目的操作数>,< >,< >
A MOVX
A
@DPTR , @DPTR @Ri @Ri
17

表示当前选定寄存器组的工作寄存器R 表示当前选定寄存器组的工作寄存器R0~R7
#data16 表示16位立即数,即0000H~FFFFH 16位立即数 #data16 表示16位立即数, 0000H
2、MCS-51的指令 MCS-51的指令
2.1 2.2 2.3 2.4 2.5 2.6 数据传送指令(29条) 数据传送指令(29条 算术运算指令(24条) 算术运算指令(24条 逻辑运算指令(24条 逻辑运算指令(24条) 控制转移指令(17条 控制转移指令(17条) 位操作指令(17条 位操作指令(17条) 常用伪指令(17条 常用伪指令(17条)
18
2.1 数据传送指令(29条) 数据传送指令(29条 ——8位数据传送指令(15条) 数据传送指令(15 (15条
MOV >,<源操作数> <目的操作数>,< >,< > A Rn MOV A Rn MOV A,#20H ,
目的地址
A
源地址
数 据
20H
direct1 , direct2 @Ri @Ri #data
PUSH direct POP direct
2)低半字节交换指令(1条 2)低半字节交换指令(1条) 低半字节交换指令(1

经典:7种寻址方式

经典:7种寻址方式

15.12.2020
7
的确,这两条指令执行的结果是完全相同的, 都是将00H单元中的内容送到A中去,但是执行的过 程不同,执行第一条指令需要2个机器周期,而第二 条则只需要1个机器周期,第一条指令变成最终的目 标码要两个字节(E5H 00H),而第二条则只要一个 字节(E8H)就可以了。
15.12.2020
15.12.2020
6
3.2.3 寄存器寻址
Register Addressing
对选定的工作寄存器R0~R7、累加器A、通用寄存器B、 地址寄存器DPTR中的数进行操作。 例:MOV A,R0;将R0工作寄存器中的数据送到累加器A中去。
MOV AL,BL (8086CPU的寄存器寻址方式)
提一个问题:我们知道,工作寄存器就是内存单元 的一部分,如果我们选择工作寄存器组0,则R0就 是RAM的00H单元,那么这样一来,MOV A,00H 和 MOV A,R0不就没什么区别了吗?
寄存器间接寻址
变址寻址 相对寻址
位寻址
15.12.2020
寻址空间(操作数存放空间) 程序存储器
片内RAM低128字节、SFR 工作寄存器R0~R7,A,B,DPTR 片内RAM:@R0,@R1,SP 片外RAM:@R0 ,@R1,@DPTR 程序存储器:@A+PC,@A+DPTR 程序存储器256字节范围内:PC+偏移量 片内RAM的位寻址区(20H~2FH字节地址) 某些可位寻址的SFR
第三章 MCS-51指令系统 Instruction Set
§3.1 概述
7种寻址方式,111条指令
字节数
单字节指令:49条 双字节指令:45条 三字节指令:17条
运算速度

七种寻址方式

七种寻址方式

七种寻址方式标签:it一、立即寻址方式操作数作为指令的一部分而直接写在指令中,这种操作数称为立即数,这种寻址方式也就称为立即数寻址方式。

立即数可以是8位、16位或32位,该数值紧跟在操作码之后。

如果立即数为16位或32位,那么,它将按“高高低低”的原则进行存储。

例如:MOV AH, 80H ADD AX, 1234H MOV ECX, 123456HMOV B1, 12H MOV W1, 3456H ADD D1, 32123456H其中:B1、W1和D1分别是字节、字和双字单元。

以上指令中的第二操作数都是立即数,在汇编语言中,规定:立即数不能作为指令中的第二操作数。

该规定与高级语言中“赋值语句的左边不能是常量”的规定相一致。

立即数寻址方式通常用于对通用寄存器或内存单元赋初值。

图是指令“MOV AX, 4576H”存储形式和执行示意图。

二、寄存器寻址方式指令所要的操作数已存储在某寄存器中,或把目标操作数存入寄存器。

把在指令中指出所使用寄存器(即:寄存器的助忆符)的寻址方式称为寄存器寻址方式。

指令中可以引用的寄存器及其符号名称如下:8位寄存器有:AH、AL、BH、BL、CH、CL、DH和DL等;16位寄存器有:AX、BX、CX、DX、SI、DI、SP、BP和段寄存器等;32位寄存器有:EAX、EBX、ECX、EDX、ESI、EDI、ESP和EBP等。

寄存器寻址方式是一种简单快捷的寻址方式,源和目的操作数都可以是寄存器。

1、源操作数是寄存器寻址方式如:ADD VARD, EAX ADD VARW, AX MOV VARB, BH等。

其中:VARD、VARW和VARB是双字,字和字节类型的内存变量。

在第4章将会学到如何定义它们。

2、目的操作数是寄存器寻址方式如:ADD BH, 78h ADD AX, 1234h MOV EBX, 12345678H等。

3、源和目的操作数都是寄存器寻址方式如:MOV EAX, EBX MOV AX, BX MOV DH, BL等。

PLC中存储器的数据类型与寻址方式

PLC中存储器的数据类型与寻址方式

PLC中存储器的数据类型与寻址⽅式⼀、数据在存储器中的存储⽅式1、数据格式及要求A〉数据格式:即指数据的长度和表⽰⽅式。

B〉要求:S7-200对数据的格式有⼀定的要求,指令与数据之间的格式⼀致才能正常⼯作。

2、⽤⼀位⼆进制数表⽰开关量A〉⼀位⼆进制数:⼀位⼆进制数有0(OFF)和1(ON)两种不同的取值,分别对应于开关量(或数字量)的两种不同的状态。

B〉位数据的数据类型:布尔(Bool)型。

C〉位地址:由存储器标识符、字节地址和位号组成,如I3.4等。

D〉其它CPU存储区的地址格式:由存储器标识符和起始字节号(⼀般取藕字节)组成,如V B 100、V W 100、V D 100等。

3、多位⼆进制数(8421码)A〉数及数制:数⽤于表⽰⼀个量的具体⼤⼩。

根据计数⽅式的不同,有⼗进制(D)、⼆进制(B)、⼗六进制(H)和⼋进制等不同的计数⽅式。

B〉⼆进制数的表⽰:在S7-200中⽤2#来表⽰⼆进制常数,例如 “2# 10111010 ”。

C〉⼆进制数的⼤⼩:将⼆进制数的各位(从右往左第n位)乘以对应的位权(×2n-1),并将结果累加求和可得其⼤⼩。

例如:2# 10111010 =1×27+0×26+1×25+1×24+1×23+0×22+1×21+0×20 = 1864、⼗六进制数A〉⼗六进制数的引⼊:将⼆进制数从右往左每4位⽤⼀个⼗六进制数表⽰,可以实现对多位⼆进制数的快速准确的读写。

B〉不同进制数的表⽰⽅法: ( 表3-2-1 不同进制数的表⽰⽅法 ) C〉⼗六进制数的表⽰:在S7-200中⽤16#来表⽰⼗六进制常数,例如 “2# 1010 1110 0111 0101 可转换为16# AEF7 ”。

D〉⼗六进制数的⼤⼩:将⼗六进制数的各位(从右往左第n位)乘以对应的位权(×16n-1),并将结果累加求和可得其⼤⼩。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
注意:偏移量rel是一8位有符号数补码,范围-128~+127。 所以转移范围应在当前PC指针的-128~+127之间某一程序存 储器地址中。
相对寻址一般为双字节或三字节指令。
有三种指令形式。
操作码
操作码
操作码
rel
直接地址
立即数
rel
rel
例如:JNZ rel
;累加器A的内容不等于零则转移。
设rel=23H,指令操作码存放在程序存储器2000H单元,并且在执
指针是有值的,它指向外部数据存储器即将访问的一个单元 2000H。当执行指令时,外部数据存储器2000H单元的内容读入 累加器A中,如图4-6所示。
图2-6 指令MOVX A,@DPTR的执行过程
2.2.5 基址+变址间接寻址
寻址空间:程序存储器(@A+DPTR,@A+PC)。
这是MCS-51指令系统特有的一种寻址方式,它以DPTR或
指令选定的寄存器内容就是实际操作数,这种寻址方式称为寄 存器寻址。其特点是被寻址的某个寄存器已隐含在操作码中, 故有时称寄存器寻址为隐含寻址。 有三种指令形式。
操作码
操作码
操作码
立即数
直接地址
例如:MOV A,R3
;A←(R3)
2.2.4 寄存器间接寻址 寻址空间:内部RAM(@R0,@R1,SP)和外部数据
是操作数地址,第二个30H是参加“与”运算的立即数, “与”的结果存入30H单元中,执行过程如图4-4所示。
PC
E5H
操作码
PC+1
30H
操作数地址
PC+2
30H
立即数
内部 RAM 30H
“与”
ALU 结果
图2-4 指令ANL 30H,#30H的执行过程 指令 ANL 30H,#30H 的执行过程
2.2.3 寄存器寻址 寻址空间:R0~R7,A、B、CY(位),DPTR,其中由RS1、 RS0两位的值选定工作寄存器区,其中CY是一个特殊的寄存器, 通常称之为位累加器。
2.1.2 布尔处理机 为了充分地满足工业控制的需要,MCS-51的设计
者在单片机内部设置了功能很强的位处理机,即布尔 处理机。布尔处理机硬件主要由以下几部分支持: 1.布尔运算器ALU 2.布尔累加器CY(PSW.7) 3.布尔RAM区 4.布尔I/O口 P0~P3口的每位都可独立地进行输入/输出操作,构成 布尔I/O口。 5.布尔指令集 由17条布尔指令组成,可对各种布尔变量进行处理, 如置位、清零、求反、跳转、传送和逻辑运算等。
存储器(@R0,@R1,@DPTR)。
指令选定的寄存器内容就是实际操作数地址(而不是 操作数),这种寻址方式称为寄存器间接寻址。当用R0, R1寄存器间接寻址之前,同样需要有一个确定的工作寄存 器区;并且上述各寄存器中均是有值(操作数地址)的。 有三种指令形式。
操作码
操作码 立即数
操作码 直接地址
例如:MOV @R0,A 这是一条累加器传送指令,在寻址前R0是有值的(有定义的),
它指向目的操作数地址。设:(R0)=30H,则该指令是把累加器 A的内容写入内部RAM的30H单元中;指令执行过程如图4-5所示。
A
PC
F6H
操作码
××
内部 RAM
PC+1
R0
30H
30H × ×
图指2令-5MO指V令M@ORV0,A@的R执0,行A过的程执行过程
例如:MOVX A,@DPTR 这是一条外部数据存储器读指令,在指令寻址前DPTR数据
行该指令前A中内容不为零,则执行过程如图4-8所示。
令中直接给出操作的地址。如图4-3所示。
A
PC
E5H
操作码
内部 RAM
××
PC+1
30H
操作数地址 30H × ×
图2指-令3 M指O令V MOA,V 3A0,H 的30执H行的过执程行过程
例如:ANL 30H,#30H ;30H←(30H)∧30H 这是逻辑“与”操作指令,操作码后面第一个30H
PC PC+1
A
93H
操作码
0FH
DPTR 2400H
……
240FH
××
ALU
图2-7 指令MOVC A,@A+DPTR的执行过程
指令 MOVC A,@A+DPTR 的执行过程
2.2.6 相对寻址
寻址空间:程序存储器。用于程序控制,利用指令修正PC 指针的方式实现转移。即以程序计数器PC的内容为基地址,加 上指令中给出的偏移量rel,所得结果为转移目标地址。
指令中给出操作数真实地址的方式称为直接寻址。指令有三 种形式:
操作码
操作码
操作码
操作数地址
源操作数地址
操作数地址
立即数
目的操作数地址
例如:MOV A,30H
;A←(30H)
这是数据传送指令,30H是内部RAM地址,功能是把
30H单元内容读入A中。注意:立即数字址与直接寻址的区
别,立即数字址是在指令中直接给出操作数直接寻址是在指
2.1.3 指令中使用的符号说明 见书上46页
2.2 MCS-51系列单片机寻址方式
2.2.1 立即寻址 立即寻址是指指令中直接给出操作数的寻址方式。指令中
的操作数称为立即数,立即数前面加“#”以区别直接寻址。8位 的立即数#data,如#30H;16位的立即数#data,如#3000H。要注 意立即寻址与直接寻址区别。
DPH DPL
PC
90H
PC+1
80H
PC+2
00H
操作码 OP
指令图2M-O2 V指令DMPOTRV,D#P8T0R0,0H#的80执0行0H过的程执行过程
2.2.2 直接寻址 寻址空间:内部RAM的低128字节和特殊功能寄存器SFR (直接寻址是访问SFR的唯一方式)。
操作码后面的一个字节是实际操作数地址。这种直接在
指令形式:
操作码
立即数
例如: MOV A,#30H ;A←30H
PC
7Hale Waihona Puke HPC+130H
操作码 OP A
指图令2-M1 O指V 令MA, OV#30AH,的#执3行0H过的程过程
例如:MOV
DPTR,#8000H;DPTR←8000H
指令立即数为16位,其功能是把立即数高8位送入
DPH,低8位送入DPL。指令执行过程如图4-2所示。
PC作基址寄存器,A作变址寄存器(存放8位无符号数),
两者相加形成16位程序存储器地址作操作数地址。这种寻
址方式是单字节指令,用于读出程序存储器中数据表格的
常数。
例如:MOVC
A,@A+DPTR
设累加器A与数据指针DPTR在寻址前是有值(定义)的。
(A)=0FH
(DPTR)=2400H
指令的执行过程如图4-7所示
相关文档
最新文档