汇编语言中ebx和bx的区别是什么

2020-12-13 09:15:22 字数 4221 阅读 5246

1楼:

ebx寄存器是32位

而且比是bx的两倍

在80386以上的指令集才可使用ebx

ebx是一个32-bit寄存器。同时,它的低16-bit又可以通过bx这

个名字来访问;bx又被分为高、低8bit两部分,分别由bh和bl来表示。

80386是intel推出的第一款ia-32系列处理器,所有的寄存器都被扩充为32位。为了

能够兼容以前的16位应用程序,80386不能将这些寄存器依旧命名为ax、bx,并且简单地将他们扩充为32位

2楼:匿名用户

ebx是32位,是bx的2倍.8086汇编中只有bx

在32位汇编中有ebx

汇编语言中“of”与“cf”的区别是什么?

3楼:手机用户

of的设置,以加法为例copy,如果

bai两数符号相同,结du果却相反

,则of=1;否则of=0;(如果两数zhi符号相反dao,是不会溢出的)。

cf的设置,最高有效位(bit7,比如)向高位进位则为1,否则为0。所以实际上of是表示有符号数的溢出,cf是表示无符号数的溢出。

理解进位,从af位的设置更为容易。

例:a的补码与b的补码计算后(加减)为c的补码把c的补码看成无符号数,意义与c相同就是cf=0否则cf=1把c的补码看成有符号数,意义与c相同就是of=0否则of=1

汇编(bx)与 [bx]有什么差别?

4楼:冰封之都

如 mov ax,bx

说明将bx寄存器中的值放入ax寄存器中

如 mov ax,[bx]

说明将ds寄存器中的值乘16+bx中寄存器的值作为地址,去取内存中这个地址的值,再保存到ax中

5楼:魔法师00可可

bx指bx所存放的是直接使用的值

[bx]指用bx中存放的地址找到对应的值

,这个值是间接使用的

汇编语言中[bx],和(bx)的区别

6楼:吴勇一家人

(bx)是仅仅指bx寄存器的内容,书写好看明了;

[bx]是指偏移地址,指的是以寄存器bx的内容为编移的路径大小。

7楼:鷹弈

[bx]是指偏移地址,默认段地址为ds

(bx)是描述语句(这样写是为了解释方便,指令当中可不能这样写)是指bx中的内容,

汇编语言:只有ebx,ecx....,没有bx,cx等,

8楼:匿名用户

ebx,ecx,都是32位寄存器

bx,cx,都是16位寄存器

x86汇编教程1

9楼:匿名用户

ebx表示的是32位寄存器,bx只表示他的低16位

汇编语言中ebx ecx edx eax这些有什么具体的差别嘛都怎么用,还有esp

10楼:匿名用户

去看看王爽汇编,你就一目了然了,基本你说的都是一样,只是没e开头 的是用在16位系统,e开头的在32位系统, r开头的用在64系统。用起来是一样的,只是长度不同。

11楼:匿名用户

没必要在意寄存器怎么用,在意的是指令编码的参数寻址就行了。

因为64位后的新增寄存器命名更简单了,什么r8b(r8的低位字节),r9d(r9的低位双字),r10(完整的64位寄存器)

12楼:匿名用户

基本是一样的,只不过是变大了而已。

eax 低字就是ax,32位的同样也能用16位的东西 都是兼容的。

汇编语言的 ax bx cx dx都有什么区别?

13楼:匿名用户

ax称为累加器(accumulator),是cpu中使用最多,功能最强,执行效率的寄存器.

bx称为基地址寄存器(base register).

cx称为计数寄存器(count register).

dx称为数据寄存器(data register).

没有本质上的区别,都是通用16位寄存器.

相应的通用32位寄存器是eax,ebx,ecx,edx.

至于怎么用库文件里的指令都有定义,只需了解指令格式即可.

14楼:文刀舍予

寄存器的不同主要体现在指令上

比如8086里的mul和div指令,就是乘法和除法,哪个寄存器是干什么的都是定义好的

还有loop指令,是根据cx来判断是否循环的最重要的就是有的寄存器可以用来寻址而有的不能比如ax不能用于寻址,就是说这样的指令是错误的:

mov bx,[ax]

而bx可以用于寻址,这条指令就是正确的:

mov ax,[bx]

这些说的只是在8086里面,32位的cpu的eax,ebx,ecx,edx都能用于寻址(这四个我试验了,其他的没试验)

15楼:

我觉得提问的就不该问这个问题,除了ax在存取速度上稍比其他三个快点外,它们根本没有本质区别

汇编语言中[bx]表示什么

16楼:披岸花丶落

您好,很高兴为您解答。

[bx]表示的是一个偏移地址。

比如你ds=1000h的话。

mov bx,1

那么 mov ax,[bx]

那么他就会寻找 段地址1000,偏移地址为0001h 的数据放入到ax中

17楼:白雲深處是我家

mov ax, [bx]

[bx]这种方式叫做寄存器间接寻址方式。

即把[bx]指向的地址中的内容,送入ax寄存器。

[bx]的计算:

物理地址 = (ds) * 16d + (bx)如:ds=0770h, bx=10h

物理地址=0770h*10h+10h = 07710h ,如果07710,07711这两个字节中的内容是5678,则执行后ax中的内容即是:7856h

18楼:逄俊贤闻凡

强制属性操作符

在程序中,我们有时需要对同一个存储单元以不同的属性来访问,或对一些不确定的存储属性需要显式指定等,这时,我们就需要强制属性操作符ptr。该操作符的作用有点象c语言中的类型强制方法。

对于指令:mov

[bx],

1h,其目标操作数[bx]是寄存器间接寻址方式,它指向一个存储单元。在作传送操作时,是把“1h”扩展成8位作字节传送,还是扩展成16位作字传送呢?这就使该指令具有二义性,因为[bx]指向的存储单元可以字节或字的首地址。

含有该指令的程序在汇编时,可能会产生警告或出错信息。

为了使指令中存储单元操作数具有明确的属性,我们可以使用强制属性操作符ptr。其一般格式为:

数据类型

ptr地址表达式

其中:数据类型是前面所学的各种数据类型,常用的数据类型有:byte、word、dword、near和far等。

为了明确指令中存储单元的属性,可把指令“mov

[bx],

1h”可改写成:

movbyte

ptr[bx],1h或

movword

ptr[bx],

1h在指令中用操作符ptr强制后,不管其后的地址表达式原数据类型是什么,在本指令中就以ptr前面的类型为准。该强制属性只在本指令有效,是一种临时性的属性,它不会改变原内存单元的定义属性。

例如:w1

dw1234h,

5678h

b1db2db

5d1dd23456789h

…mov

ax,word

ptrb1

;把b1开始的二个字节拼接成一个字,执行后,(ax)=0502h

movbh,

byte

ptrw1

;把字w1的低字节传送给bh,执行后,(bh)=34h

movch,

byte

ptrw1+1

;把字w1的高字节传送给ch,执行后,(ch)=12h

movword

ptrd1,

12h;把双字d1的低字修改成0012h,执行后,(d1)=23450012h

上面指令中的强制属性是临时属性,它不能改变这些变量在定义时的永久属性。

汇编语言中什么是压栈出栈,汇编语言中的栈,压栈,出栈是什么意思

1楼 匿名用户 栈是一种线性数据结构,它遵循后进先出的顺序。有一个指针总指向栈顶。打个比方 一个栈就相当于一个桶,入栈就是向里面装东西,先装的在下面后装的在上面,装一个指针就会加1,指向新装的东西,出栈就相当于取出东西,只有先取上面的,再取下面的,当取一个后指针就会减一,即指针始终指向桶里最上面那个...

汇编语言中的offset什么意思

1楼 戰为瘸子六 1 offset是将数值回送变量或标号的偏移地址值 2 lea是将数值回送变量或标号的有效地址值 3 seg 汇编程序将回送变量或标号的段地址值 4 lea bx list 5 mov bx offset list6 可以看出,lea和offset这两条指令在功能上是相同的,bx寄...

汇编中的dec指令是什么指令,汇编语言中的DEC是什么意思?

1楼 魔界刺客 dec a 14 a减1 dec rn 18 1f 寄存器减1 dec dircet 15 dircet 直接字节减1dec ri 16 17 间接ram减1 汇编语言中的dec是什么意思 2楼 凌乱心扉 dec decrement 减1指令 格式 dec opr byte word...