汇编语言的寻址方式怎么判断?

我刚刚学了,汇编语言的寻址方式,但是做习题的时候有的复杂的寻址我看不出来?能给我出几道例题来讲解吗? MOV DAVL[BP],AX 这样的寻址也对吗?详细讲解下.谢谢了~

汇编语言的寻址方式就是寻找操作数所在地址的方法,可以参考以下几种:

1、立即寻址:操作数在指令中,如:MOV AL,12H(源操作数)

2、寄存器寻址:操作数在指令中的寄存器中,如:MOV AL,BH(源操作数)

3、直接寻址:操作数所在存储器的有效地址在指令中,如:MOV AL,[12H](源操作数)

4、寄存器间接寻址:操作数所在存储器的有效地址在指令中的寄存器中,如:MOV AL,[BX](源操作数)

5、寄存器相对寻址:操作数所在存储器的有效地址为指令中的寄存器加位移量,如:MOV AL,[BX+12H]或MOV AL,DAVL[BP](源操作数)

6、基址变址寻址:操作数所在存储器的有效地址为指令中的基址寄存器加变址寄存器,如:MOV AL,[BX+SI]或MOV AL,[BX][SI](源操作数)

7、相对基址变址寻址:操作数所在存储器的有效地址为指令中的基址寄存器加变址寄存器,再加位移量,如:MOV AL,[BX+SI+12H]或MOV AL,DAVL[BX][SI](源操作数)。

展资料:

在存储器中,操作数或指令字写入或读出的方式,有地址指定方式、相联存储方式和堆栈存取方式。几乎所有的计算机,在内存中都采用地址指定方式。当采用地址指定方式时,形成操作数或指令地址的方式称为寻址方式。

寻址方式分为两类,即指令寻址方式和数据寻址方式,前者比较简单,后者比较复杂。值得注意的是,在传统方式设计的计算机中,内存中指令的寻址与数据的寻址是交替进行的。

当程序转移执行的顺序时,指令的寻址就采取跳跃寻址方式。所谓跳跃,是指下条指令的地址码不是由程序计数器给出,而是由本条指令给出。注意,程序跳跃后,按新的指令地址开始顺序执行。因此,程序计数器的内容也必须相应改变,以便及时跟踪新的指令地址。

采用指令跳跃寻址方式,可以实现程序转移或构成循环程序,从而能缩短程序长度,或将某些程序作为公共程序引用。指令系统中的各种条件转移或无条件转移指令,就是为了实现指令的跳跃寻址而设置的。

参考资料来源:百度百科-寻址方式

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-09-01
汇编语言的寻址方式就是寻找操作数所在地址的方法,有七种:立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻址。
1、立即寻址:操作数在指令中,如:MOV AL,12H(源操作数)
2、寄存器寻址:操作数在指令中的寄存器中,如:MOV AL,BH(源操作数)
3、直接寻址:操作数所在存储器的有效地址在指令中,如:MOV AL,[12H](源操作数)
4、寄存器间接寻址:操作数所在存储器的有效地址在指令中的寄存器中,如:MOV AL,[BX](源操作数)
5、寄存器相对寻址:操作数所在存储器的有效地址为指令中的寄存器加位移量,如:MOV AL,[BX+12H]或MOV AL,DAVL[BP](源操作数)
6、基址变址寻址:操作数所在存储器的有效地址为指令中的基址寄存器加变址寄存器,如:MOV AL,[BX+SI]或MOV AL,[BX][SI](源操作数)
7、相对基址变址寻址:操作数所在存储器的有效地址为指令中的基址寄存器加变址寄存器,再加位移量,如:MOV AL,[BX+SI+12H]或MOV AL,DAVL[BX][SI](源操作数)。

MOV DAVL[BP],AX 中目的操作数是寄存器相对寻址,源操作数是寄存器寻址。本回答被提问者采纳

汇编语言的寻址方式怎么判断
汇编语言的寻址方式就是寻找操作数所在地址的方法,有七种:立即寻址、寄存器寻址、直接寻址、寄存器间接寻址、寄存器相对寻址、基址变址寻址、相对基址变址寻址。1、立即寻址:操作数在指令中。2、寄存器寻址:操作数在指令中的寄存器中。3、直接寻址:操作数所在存储器的有效地址在指令中。4、寄存器间接寻...

汇编语言的寻址方式怎么判断?
1. 立即寻址:操作数直接包含在指令中,例如:MOV AL, 12H(其中12H是源操作数)。2. 寄存器寻址:操作数存储在寄存器中,例如:MOV AL, BH(其中BH是源操作数)。3. 直接寻址:操作数的地址直接包含在指令中,例如:MOV AL, [12H](其中12H是源操作数的地址)。4. 寄存器间接寻址:操作数的地...

汇编语言判断寻址方式
第一条是立即数寻址;第二条是直接寻址。1.把57H先放在ARRAY1中,然后赋给DX。相当于给DX寄存器赋初值。2.直接寻址方式是指在指令的操作码后面直接给出操作数的16位偏移地址。这里的ARRAY1和ARRAY2是两个存储变量。汇编语言中,允许用存储变量代表操作数的偏移地址。该两条指令就是把变量ARRAY2所对...

汇编语言中怎样判断源操作数与目的操作数的寻址方式?
寻址格式中,加方括号的是地址,没加方括号的是操作数,比如:2000H是立即数,[2000H]是内存的地址;BX是寄存器BX里面的数据,[BX]是BX的数据作地址。1、MOV ES,AX 都是寄存器寻址2、ADD DS:[12H],AL 源:寄存器寻址 目的:直接寻址3、SUB BX,1200H 源:立即寻址 目的:寄存器寻...

为什么汇编语言中有那么多寻址方式? 为什么数据交换不能直接从内存到...
拿8051单片机参考,因为8051是8位机,寻址范围为0-255,而内存存储空间大于255,所以需要间接寻址,还有地址位移,向前移,向后移,这样寻址方式快,还有就是利用寻址方式不能,使用的指令不同,也同样区分地址是内部存储还是外部存储。数据交换从内存到内存:因为数据交换是有MCU进行处理的而不是由硬件自动...

汇编语言中哪些寻址方式访问存储器,哪些寻址方式是访问存储单元_百度...
汇编语言中有七种不同的寻址方式,用于访问存储器中的存储单元:1. 直接寻址:通过指定内存地址来访问数据。例如:`mov ax, [100]`,这里的`100`是内存中的一个地址,`ax`寄存器会加载该地址处的值。2. 寄存器寻址:使用寄存器直接访问其内容。例如:`mov ax, bx`,这里`ax`寄存器会被`bx`...

汇编语言里对寻址的深入理解??
寻址方式有立即数、直接、间接等各种类型,立即数就是操作数直接在指令中给出,操作数本身是汇编指令的一部分,如:MOV AX,1234H 其他的类型,操作数不会直接给出,要么存放于某寄存器中,要么存放于某些内存单元中,这时,你的汇编指令里肯定要涉及到寄存器名或者像[0012H]这样的地址。

汇编语言中什么是直接寻址和间接寻址 直接和间接的区别是什么?
一、直接寻址方式 指令所要的操作数存放在内存中,在指令中直接给出该操作数的有效地址,这种寻址方式为直接寻址方式。在通常情况下,操作数存放在数据段中,所以,其物理地址将由数据段寄存器DS和指令中给出的有效地址直接形成,但如果使用段超越前缀,那么,操作数可存放在其它段。如 MOVBX,[1234H]二...

汇编语言中的如何寻找地址的
2,寄存器寻址方式 操作数在寄存器中,指令指定寄存器号。例:mov ax,bx 3,直接寻址方式 操作数的有效地址包含位移量的一种成分,其值就存放在中指令的操作码之后。例:mov ax,[2000h]在汇编语言指令中,可以用符号地址代替数值地址。如:mov ax,value value为存放操作数单元的符号地址。如:mov ...

汇编语言中的操作数寻址方式问题.存储器和寄存器问题?高手请进
如果把寄存器里面的数当作地址编号,跟据编号在内存里找到另一个数,就是存储器寻址。CS,DS,ES,SS是CPU的寄存器 MOV AX,DS 都是寄存器寻址方式(它们本身都有值)。MOV AX,[2000] 这个指令有两种寻址方式 AX表式寄存器寻址方式,[2000]表示直接寻址方式(存储器寻址方式的一种)反正只要带上中...

相似回答