我需要将汇编程序命令 MOV BL,[ALPHA]
转换为intels 8086处理器的机器代码。因此,ALPHA是数据段第11位的1字节变量,已加载到DS
寄存器中。
我已经将MOV AL,[ALPHA]
翻译成了我已经完成的另一项任务。在这里,我在指令集表中找到了MOV AL/AX,addr
,因此我可以将整个内容翻译成机器代码中的1010|0000 1010|0000
或A0 10
。
我倾向于使用指令集表的MOV r/m1,r/m2
,但我不是100%肯定,因为我在选择r/m
部分时遇到了问题。由于这是考试的准备,如果有人可以提供帮助,我会很高兴:)
答案 0 :(得分:4)
那必须是一个奇怪的指令集表,因为没有mov r/m1,r/m2
(你不能有两个内存引用)。最好试试official intel one。你需要的是mov r8, r/m8
。其编码为8A /r
。使用表2-1。使用ModR / M字节的16位寻址表您可以看到具有16位位移BL
的操作数disp16
表示1E
的modrm字节,后跟16位位移,所以完整的指令是8A 1E 0A 00
。您可以使用汇编程序验证:
8A1E0A00 mov bl, [10]
PS:目前还不清楚你真正想要的偏移,但我相信你可以填写正确的偏移量。