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

Assembly 在一些MOV、XOR、RCL和DIV指令之后查找寄存器值,assembly,x86,reverse-engineering,masm,Assembly,X86,Reverse Engineering,Masm,请帮助我获取此汇编代码。我需要找到AX、BX和DX的值,但我不能这样做。我真的很感谢你的帮助。谢谢 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 你的问题似乎不清楚,但我试图回答

请帮助我获取此汇编代码。我需要找到
AX
BX
DX
的值,但我不能这样做。我真的很感谢你的帮助。谢谢

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

你的问题似乎不清楚,但我试图回答。如果你想知道寄存器的值,你至少有两种方法:第一种是在纸上执行代码,我想这个练习就是为了这个。后者涉及在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

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

您的问题似乎不清楚,但我试图回答。如果你想知道寄存器的值,你至少有两种方法:第一种是在纸上执行代码,我想这个练习就是为了这个。后者涉及在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

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

非常感谢。我搞不懂RCL。RCL是否根据十进制或十六进制值旋转?RCL AX,10h表示它将向左移动16次,或者10次?h表示十六进制,因此10h是16。非常感谢。我搞不懂RCL。RCL是否根据十进制或十六进制值旋转?RCL AX,10h表示它将向左移动16次,或10次?h表示十六进制,因此10h为16。