1 / 10

寻址方式

寻址方式. Tsinghua Motorola MCU/DSP Application Center. 寻址方式. 1. 隐含寻址( inherent ) 2. 立即寻址( immediate ) 3. 直接寻址( direct ) 4. 扩展寻址( extended ) 5. 变址寻址( indexed ) ( 1 )无偏移量、 8 位、 16 位偏移量( 0 , 8 and 16 bit offset ) ( 2 )堆栈指针加偏移量寻址( stack pointer ) ( 3 )带自动加 1 的变址寻址 (post increment ).

edric
Download Presentation

寻址方式

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 寻址方式 Tsinghua Motorola MCU/DSP Application Center

  2. 寻址方式 1. 隐含寻址(inherent) 2. 立即寻址(immediate) 3. 直接寻址(direct) 4. 扩展寻址(extended) 5. 变址寻址(indexed) (1)无偏移量、8位、16位偏移量(0,8 and 16 bit offset) (2)堆栈指针加偏移量寻址(stack pointer) (3)带自动加1的变址寻址(post increment)

  3. 寻址方式 6. 相对寻址(relative) 7. 存储器到存储器寻址方式(memory to memory) (1)立即数寻址 (immediate) (2)直接寻址(direct) (3)变址寻址(indexed)

  4. 隐含寻址方式 在隐含寻址方式中,指令的所有有关信息均在操作码中,它可访问累加器、变址寄存器和条件码寄存器,均为单字节指令。比如DAA,CLRA,DIV。指令中只有操作码,没有操作数。指令的意义是明显的,不需要任何操作数。 例如:CLRA 功能:把累加器A清零。

  5. 立即寻址方式 在立即寻址方式中,实际操作数紧跟在指令码之后,字节数与寄存器大小一致,这类指令含有2、3或4个(当需前置字节时)字节,紧跟在操作码后面的# 是说明符,说明后面紧跟的是操作数值而不是操作数地址。立即数限制为1或2个字节,它取决于指令所使用的寄存器大小。 例如:LDA #$FF功能:把十六进制值$FF送到累加器A中。

  6. 直接寻址方式 在直接寻址方式中,操作数的有效地址(EA,16位)的低字节放在操作码后面的一个字节中,地址的高位字节默认为$00,不包含在指令中。直接寻址指令(两字节)能访问存储器中最低的256字节($0000-$00FF),绝大部分指令都具有直接寻址方式。它节省了指令空间,提高了指令的执行速度。直接寻址方式只能对$0000-$00FF内存空间中的操作数进行操作。有时也将直接寻址方式称为零寻址方式。 直接寻址方式指令比效果相当的扩展寻址指令少用了一个字节的程序内存空间,由于不需访问扩展内存,指令的执行时间减少了一个时钟周期。对于一个大型程序,这样的节省是很可观的。大部分单片机将$0000-$00FF的内存空出,以便设计者放置那些经常需要调用的数据。 例如:LDA $50功能:把地址为$0050的单元内容送到累加器A中。

  7. 扩展寻址方式 扩展寻址方式,操作数的有效地址为操作码后面的两个字节。因此,大多数扩展地址指令为3个字节:一个字节是操作码,两个字节是有效地址。 在汇编语言中,在单字节地址前加符号<表示直接寻址。否则,编译时会在该地址字节前加上一个$00字节,就成了扩展寻址。 例如,LDA <$40 表示汇编时用直接寻址。 LDA $40 汇编时将生成两字节操作数$0040,属扩展寻址。 扩展变址中,操作数占两个字节。操作数表示的是地址,故寻址范围是64K。 例如:LDA $0400 功能:把地址为$0400的单元内容送到累加器A中。

  8. 变址寻址方式 1)使用寻址寄存器的变址寻址方式 ①无偏移量变址寻址(IX) ②8位偏移量变址寻址(IX1) ③16位偏移量变址寻址(IX2) 2)使用堆栈指针的变址寻址方式 ①用堆栈指针的8位偏移量变址寻址 ②用堆栈指针的16位偏移量变址寻址

  9. 相对寻址方式 相对寻址主要用于相对转移指令。一般来讲,转移指令(不包括位操作数转移指令)由二个字节组成,其中一字节为操作码,一字节为相对偏移量。相对偏移量为有符号二进制数。如果转移条件为真,则把指令的第二字节的8位存在的偏移量加到PC中,形成有效转移地址。当转移条件为假时,执行转移指令后的指令。相对寻址的范围为操作码地址开始的-126到+129字节。在使用汇编程序时,用户不必要自己计算偏移量,汇编程序会计算偏移量,并进行校验,看它是否在转移范围内。有四个新的转移指令(BLT,BGT,BLE,BGE)通过访问标志位N,Z,V来确定相关的有符号操作数的值。 BEQ $80如果条件成立:PC= $80; 否则顺序执行。 BRA ABC 无条件转向标号ABC处;

  10. 存储器到存储器的寻址方式 指令格式为:MOV 源地址,目的地址 (1)立即数,直接方式 MOV #$AA,$F0功能:将立即数$AA送到地址$00F0处。 (2)直接,直接方式 MOV $00,$F0功能:将地址$0000的内容送到地址$00F0处。 (3)自动变址,直接方式 MOV X+,$18功能:将变址寄存器(H:X)为地址的内容送到地址$0018处,然后(H:X)自动加1。 (4)直接,自动变址方式 MOV $18,X+功能:将地址$0018处的内容送到变址寄存器(H:X)为地址的存储器单元中,然后(H:X)自动加1。

More Related