MOV ECX, 123456H是什么意思

来源:百度知道 编辑:UC知道 时间:2024/06/13 21:30:31
MOV我知道 ,是强制右边的数等于左边。可是123456为什么要加H呢?十六进制的代表符号?
MOV ECX,【123456H】 还有种是这样的,后面打了方括号又是什么意思呢

楼上的乱写..
mov ecx, 123456H
这个跟MSC-51根本没有关系,这明显是x86的汇编

123456H 表示123456是16进制的,
即ecx = 123456H
mov ecx ,[123456H]
这个是指去 DS:ECX 地址里面的值给ECX,
不考虑ds状况的话
比如
地址123456H里面的值是55667788H
那么mov ecx ,[123456H]后
ecx = 55667788H
而mov ecx ,123456H 后
ecx = 123456H

ECX是寄存器名
E和C分别代表 Expand 和 Count ,也就是拓展通用计数寄存器
不是指令
三楼的你说错了

这样的指令显然是80x86汇编指令。

看来提问者是初学汇编语言,你对MOV指令的理解有误或表述不当。MOV指令相当于高级语言的赋值语句,把源操作数赋给目的操作数,而不是右边的数等于左边(你这个理解或表述,意思正好相反)。指令MOV ECX,123456H执行后,ECX=123456H。

汇编指令中的立即数,有4种表现形式,即二进制、八进制、十进制、十六进制。除了十进制数之外,另外三种进制数,必须在数值后面缀以对应的字母来标明数值的基数(进制),字母“B”表示二进制数、“O”或“Q”(避免与数字“0”混淆)表示八进制数、“H”表示十六进制数,字母大小写均可。123456是十进制数,后面加上字母“H”,则表示十六进制数,概念不一样,其数值大小也就不一样。

数值外面加上方括号,这是存储器直接寻址方式。MOV ECX,[123456H]表示把存储器中DS:123456H所存的一个字(双字节)赋给寄存器ECX,假设DS:123456H=7A8B9C0D,则指令MOV ECX,[123456H]执行后,ECX=7A8B9C0D。

上楼的说法很对的,你就参照他的行的.
ECX就是X86的指令,属于扩展指令.
H 就是十六进制的表示方法.带中括号的是表示地址.多学点X86的东西就自