任何人都可以帮我从汇编中读取96位用户? 现在我正在阅读这样的数字:
mov $12, %edx
mov $variable1, %ecx
mov $STDIN, %ebx
mov $SYSREAD, %eax
int $0x80
任何人都可以帮我重新编写这段代码,所以我可以读取位而不是字节吗? 我必须添加2个96位的数字 - 也许我正确读取它,但后来使用它们错了?
答案 0 :(得分:0)
96/16 = 6个字或3个双字
你可以把它推到堆栈然后通过pop加载每个块(16或32位),比如说eax
然后在循环中使用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 for bignumbers 然后打印下面的96位数答案... lol
(我甚至不知道是否可以将96位数字放入一行,不要忘记,除非你打印完整个字符串,否则没有回车或换行)