【发布时间】:2015-09-10 16:42:46
【问题描述】:
我编写了一个单独的程序只是为了弄清楚如何做到这一点,之前我将 48 添加到要打印的数字上,但现在当我得到大于 9 的数字时,它就不再足够了。
所以下面的程序应该将 23 放入 my temp 中,如果小于 10,则将 23 与 10 进行比较,否则我可以打印,否则将 temp 放入 rax,将 10 放入 r11,然后将 23 除以 10。 将 rax 的结果放入 temp 并再次检查。 我仍然需要添加一种方法来检索较早的数字,但首先要做的是。 我是否误解了会发生什么,我得到的结果是浮点数错误
#include <stdio.h> #Inkludera standard I/O
.data #Specifiera data
temp: .quad 0
temp2: .quad 0
.text
.global main
main:
movq $23, temp
jmp check
check:
cmpq $10, $temp
jl under10
movq $temp, %rax
movq $10, %r11
divq %r11
movq %rax,temp
jmp check
under10:
addq $48, temp
movq $temp,%rdi
call puts
【问题讨论】:
标签: assembly integer ascii att