[英]hexadecimal value of opcodes
我创建了一个非常简单的汇编程序,在DOS中打印字母'a'。 我在十六进制编辑器中打开它,结果如下:
汇编代码:
mov ah, 2
mov dx, 'a'
int 21h
十六进制代码
B4 02 B2 61 CD 21
我想了解它是如何生成的! 就像,我不知道我是对的,但我意识到:
B4 = mov ah
02 = 2
B2 = mov dx
61 = 'a'
CD = int
21h = 21
在02
, 61
和21
我明白了什么转身,但和B4
, B2
和CD
?
这是一个很好的参考: http : //ref.x86asm.net/coder32.html
如你看到的:
CD
是int
的操作码 B0+reg
是mov reg, imm8
的操作码,其中reg
是目标寄存器,从这个表中可以看出, ah = 100b
, dx = 010b
是汇编x86指令:
我建议你阅读本指南程序集x86 http://www.cs.virginia.edu/~evans/cs216/guides/x86.html
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.