汇编语言中的操作码占多少字节?

2024-12-31 08:02:44
推荐回答(4个)
回答1:

在51汇编语言中,操作码一般占用一个字节,操作数一般占用0到2个字节。比如:
MOV A,R0,操作码E8H占用一个字节,操作数占用0个字节
MOV A,#20H,操作码74H占用一个字节,操作数#20H占用一个字节
MOV DPTR,#2000H,操作码90H占用一个字节,操作数2000H占用两个字节。

回答2:

①INT这个指令占用1或2和字节
INT 3的机器码是CC,其他的是2字节
sorry,我也不知道3号中断是干嘛的,有这么大的特权,自己单用一个指令机器码,你有兴趣自己查查吧

有个常用指令的
http://www.namipan.com/d/08f3b37df31af5a740d2533ad37ec01487af86b5c94b0100
我传到纳米盘里了,不是很大,下载速度再慢也不可能等太久
这个是masm32中的一个帮助文件,不是全部的指令,但常用的都在了
这还有一个(在别人的回答里看到的):
http://www.shsiyue.com/data/hard/80x86-code-bin.htm
哥们不要再想全部这个词了,想当初我也对全部这个词很喜欢,但是事实不允许啊,intel的指令太多了,据说有好几本,常用的知道了就行了,其他的用到的时候再搜索也不迟

②都是按 指令机器码 操作数 的形式存放的
不过操作数中大于1字节的数据还是用的那种很别扭的方式存放的,就是高位在高位,低位在低位的那种

你的第三个问题和第二个问题重复了吧?

回答3:

第一问:int 指令占2个字节
有一方法能得到其长度,就是编译成.exe文件,在debug中用u命令可以看见其指令长度(字节数)

第二问:所以的指令都有自己的字节数,通过传送指令传到内存中存放

第三问:int 08H实际上字节数为:CD 08 由低到高 ,所以高位为08H
低位为CD(int)

回答4:

因为我们目前用的微机大部份是X86的,而这种CPU又是不定长的指令,而且同一条指令使用了不同的寻址方式的话长度又不同,所以你想要个这个表,那只有找有心人慢慢帮你做,其实你可以试一下,自己把每条指令的各种寻址写出来,然后用调试器看一下就知道了
比如这个INT 21H 汇编成机器码就是 CD 21