在一些MOV,XOR,RCL和DIV指令之后查找寄存器值

时间:2019-03-30 16:49:06

标签: assembly x86 reverse-engineering masm

请帮助我获取此汇编代码。我需要找到AXBXDX的值,但是我不能这样做。非常感谢您的帮助。谢谢。

MOV AX,0d
RCL AX,1h
MOV AX,e213h 
MOV BX,d123h
XOR AX,BX
XOR BX,AX
XOR AX,BX
RCL AX,10h    ; Give AX=   BX=

MOV AX,215h
MOV DX,2h
MOV BX,8h
DIV BX    ; Give AX=   BX=   DX=

INT 20h

1 个答案:

答案 0 :(得分:2)

您的问题似乎不清楚,但是我尝试回答。如果您想知道寄存器的值,则至少有两种方法:第一种方法是在纸上执行代码,我认为本练习是针对这种情况的。后者涉及在MASM或C中以内联汇编的形式创建过程。

因为,在我看来,这是一项作业,只需在纸上进行:

; ax=?, bx=?, dx=? this is the starting point. assume all registers are unknown
MOV AX,0d
; ax=0, bx=?, dx=? mov performs copy between registers, 0d is 0 (in decimal)
RCL AX,1h
; ... and so on... If you don't known where to look, have a look at for RCL: https://c9x.me/x86/html/file_module_x86_id_273.html
MOV AX,0e213h 
MOV BX,0d123h
XOR AX,BX
XOR BX,AX
XOR AX,BX
RCL AX,10h    ; here1 Give AX=   BX=

MOV AX,0215h
MOV DX,2h
MOV BX,8h
DIV BX    ; here2 Give AX=   BX=   DX=

INT 20h

Here,您可以浏览所有操作码和助记符。