这个问题要求我接受一个dword并将它从little endian转换为big endian。我已经把那部分打倒了,但现在我需要将它打印出来。
对WriteHex的调用只会打印出整个寄存器。我也尝试使用一些数学来将我的数组的内容放在一个寄存器中但我们只能使用mov,add和sub而没有循环。有没有办法使用Irvine打印单个字节或只使用那些命令将数组移动到寄存器?
这就是我所拥有的
<system.web>
<machineKey decryptionKey="Yourdecryptionkey" validationKey="Your validation
key" />
</system.web>
答案 0 :(得分:0)
PTR
是声明或覆盖类型的MASM运算符。如果你想要从DWORD变量中获取单个字节,请使用BYTE PTR
。如果要从BYTE阵列加载DWORD,请使用DWORD PTR
:
INCLUDE Irvine32.inc
.data
bigEndian BYTE 4 DUP(?)
littleEndian DWORD ?
prompt BYTE "Please enter a number in HEX > ",0
.code
main PROC
mov edx, offset prompt
CALL WriteString
CALL ReadHex
mov littleEndian, eax
mov al, BYTE PTR littleEndian + 3
mov bigEndian + 0, al
mov al, BYTE PTR littleEndian + 2
mov bigEndian + 1, al
mov al, BYTE PTR littleEndian + 1
mov bigEndian + 2, al
mov al, BYTE PTR littleEndian + 0
mov bigEndian + 3, al
mov eax, DWORD PTR bigEndian
call WriteHex
exit
main ENDP
END main