这是一条汇编指令:"0DAB:0106 89E8 MOV AX,BP", 那么16进制数字和机器码之间的转化关系是什么?后来发现机器码有不同的长度,不同长度又分别代表什么含义?通过机器码,如何知道一些信息呢,如:操作数和源操作数,参考一些文章来对比分析下 0x01 机器码分析 1.1 分析16/16位寄存器 1. 目的操作数不变,改变源操作数 逻辑地址 机器码 操作符 操作数 机器码 src dest 0DAB:0100 89C0 MOV AX,AX ;89C0 -> 100010001 11 000 000 0DAB:0102 89D8 MOV AX,BX ;89D8 -> 100010001 11 011 000 0DAB:0104 89D0 MOV AX,DX ;89D0 -> 100010001 11 010 000 0DAB:0106 89E8 MOV AX,BP ;89E8 -> 100010001 11 101 000 0DAB:0108 89F0 MOV AX,SI ;89F0 -> 100010001 11 110 000 0DAB:010A 89F8 MOV AX,DI ;89F8 -> 100010001 11 111 000 0DAB:010C 89E0 MOV AX,SP ;89E0 -> 100010001 11 100 000 0DAB:010E 89C8 MOV AX,CX ;89C8 -> 100010001 11 001 000 2. 源操作数不变,改变目的操作数 0DAB:0110 89C3 MOV BX,AX ;89C3 -> 100010001 11 000 011 0DAB:01…
标签: 16asm
1 篇文章