机器码最新解决方法 机器码封了怎么解决图文教学( 二 )


3立即地址指令的编码
MOV [BX+2100H],0FA50H
该指令的作用是将16位立即数发送到具有指定有效地址的字存储单元;低字节50H发送到[BX+2100H]单元,高字节FAH发送到(BX+2101H)单元 。
该指令的编码格式为:110011W MOD 000 R/M数据(如果W=1) 。
指令中不仅有16位立即数,还有16位位移 。
因此,该指令的6字节代码为C7 87 00 21 50 FA H 。
4包含段寄存器的指令代码
MOV DS,AX
该指令的功能是将AX寄存器的内容传输到数据段寄存器DS 。
该指令的编码格式为:10001110 mod 0 reg r/m .
【机器码最新解决方法 机器码封了怎么解决图文教学】段DS的代码是11,即REG字段是11;另一个操作数也是寄存器,所以mod = 11,R/M域要用AX的三位代码000填充 。
因此,该指令的2字节代码是8d8h 。
前缀超过指令的5段代码
MOV [BX],DL
该指令的功能是将DL寄存器的内容传输到具有有效地址(BX)的字节存储单元 。
此指令得编码格式(无段覆盖前缀)为:100010 dw mod 0 reg r/m .
如果数据从寄存器传输,d = 0;如果传输的数据是字节,那么w = 0;再者,REG = 010;另一个操作数是内存,所以mod = 00,R/M=111 。这条指令的代码是88 17H,不带段前缀 。
在指令代码前添加一个8位段覆盖前缀代码 。代码格式为001××110,其中××位表示段覆盖寄存器 。因为段寄存器CS的代码是01,所以指令的第一个字节的代码是00101110,也就是2EH 。
因此,这条指令的机器代码是2E 88 17H 。
6主要装配说明
7主寻址模式
8机器码汇编指令和ASCII码
机器码、汇编代码和C语言代码的另一个比较:


推荐阅读