use*_*017 3 x86 assembly hex dos
我创建了一个非常简单的汇编程序,该程序在DOS中打印字母“ a”。我在十六进制编辑器中将其打开,结果是:
汇编代码:
mov ah, 2
mov dx, 'a'
int 21h
Run Code Online (Sandbox Code Playgroud)
十六进制代码
B4 02 B2 61 CD 21
Run Code Online (Sandbox Code Playgroud)
我想了解它是如何产生的!就像,我不知道我是否正确,但是我意识到:
B4 = mov ah
02 = 2
B2 = mov dx
61 = 'a'
CD = int
21h = 21
Run Code Online (Sandbox Code Playgroud)
的02,61而且21我明白了什么转身,但和B4,B2和CD?
这是一个很好的参考:http : //ref.x86asm.net/coder32.html
如你看到的:
CD 是的操作码 intB0+reg是的操作码mov reg, imm8,在哪里reg是目标寄存器,从此表中可以看到,ah = 100b以及dx = 010b是汇编 x86 指令:
我建议您阅读本指南汇编 x86 http://www.cs.virginia.edu/~evans/cs216/guides/x86.html