Assembly 汇编程序读取位
有人能帮我从汇编中的用户那里读取96位吗? 现在我读的是这样的数字:Assembly 汇编程序读取位,assembly,stdin,bit,Assembly,Stdin,Bit,有人能帮我从汇编中的用户那里读取96位吗? 现在我读的是这样的数字: mov $12, %edx mov $variable1, %ecx mov $STDIN, %ebx mov $SYSREAD, %eax int $0x80 有人能帮我重新格式化这个代码,这样我就可以读取位而不是字节了吗? 我必须添加两个96位的数字-也许我读对了,但后来用错了?96/16=6个字或3个DWORD 您可以将其推到堆栈上,然后通过pop-to(比如eax)加载每个块(16或32位) 然后在循环中使用shl
mov $12, %edx
mov $variable1, %ecx
mov $STDIN, %ebx
mov $SYSREAD, %eax
int $0x80
有人能帮我重新格式化这个代码,这样我就可以读取位而不是字节了吗?
我必须添加两个96位的数字-也许我读对了,但后来用错了?96/16=6个字或3个DWORD 您可以将其推到堆栈上,然后通过pop-to(比如eax)加载每个块(16或32位) 然后在循环中使用shl
mov cx,32 ;The 32 bit loop
.printbinary
shl eax,1 ;shove eax one bit to the left
jnc azero ;jump if no carry flag
PRINT A ONE
loop printbinary
.azero
PRINT A ZERO
loop printbinary
有点
(无论您想做什么,进位标志都会读取单个位,shr/shl会将寄存器移动1位)
屏幕转储等只会给你十六进制代码
所以在屏幕上一行一行地打印二进制文件(每行打印96次?)
然后在您特定的语言风格中使用ADD来表示大数字
然后在下面打印出96位数的答案…哈哈
(我甚至不知道是否有可能在一行中输入96位数字,别忘了,在打印完整个字符串之前,不会有回车符或换行符)你没有提到用户应该以哪种格式输入数字(十进制、十六进制、二进制、base64等)。教授只说我必须读一串位