寻址方式与数据传送
- 格式:pptx
- 大小:241.95 KB
- 文档页数:34
七种寻址方式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四种寻址方式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)——数据包发送给所有的路由器,包括协调器。
第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中。
数据寻址方式介绍1.直接寻址:直接寻址是最简单的寻址方式,它是通过给定一个地址来访问数据。
在这种寻址方式中,数据的地址就是其在计算机存储器中的实际物理地址。
这种寻址方式的优点是实现简单,访问速度快,但缺点是地址空间受限,不适用于大型的存储器系统。
2.间接寻址:间接寻址是通过一个地址来访问另一个存储区域,而在这个存储区域中包含着最终需要访问的数据地址。
这种寻址方式的优点是可以将多个数据存放在同一个存储区域中,有效地利用存储空间。
它也提供了更灵活的寻址方式,可以通过更改间接地址来访问不同的数据。
缺点是增加了访问数据的时间,因为需要多次访问存储器。
3.寄存器寻址:寄存器寻址是直接将数据存储在处理器的寄存器中,然后通过寄存器来访问数据。
这种寻址方式的优点是访问速度非常快,因为数据直接存储在处理器中。
缺点是寄存器数量有限,无法存储大量的数据。
4.堆栈寻址:堆栈寻址是通过使用一个堆栈来存储数据,并通过堆栈指针来定位需要访问的数据。
在这种寻址方式中,栈指针会向栈的一个方向移动,将数据压入堆栈或弹出堆栈。
堆栈寻址的优点是可以灵活地向堆栈中添加或删除数据,适用于函数调用和中断处理。
缺点是访问数据的时间会较长,因为需要不断地移动栈指针。
5.直接偏移寻址:直接偏移寻址是通过给定一个基础地址和一个偏移量来访问数据。
在这种寻址方式中,基础地址是数据的起始地址,偏移量是相对于基础地址的位移距离。
通过将基础地址和偏移量相加,可以得到需要访问的数据地址。
这种寻址方式的优点是能够有效地使用地址空间,减少了寻址的时间。
缺点是需要额外的操作来计算数据的地址。
6.寄存器间接寻址:寄存器间接寻址是通过使用一个寄存器中存储的地址来访问数据。
在这种寻址方式中,寄存器中存储的地址就是需要访问的数据的地址。
这种寻址方式的优点是访问速度快,因为数据的地址存储在寄存器中。
缺点是寄存器数量有限,无法存储大量的地址。
7.基址寻址:基址寻址是通过给定一个基址和一个偏移量来访问数据。