相关疑难解决方法(0)

使用 AT&T 语法将整数打印为字符串,使用 Linux 系统调用而不是 printf

我编写了一个汇编程序来显示遵循 AT&T 语法的数字的阶乘。但它不起作用。这是我的代码

.text 

.globl _start

_start:
movq $5,%rcx
movq $5,%rax


Repeat:                     #function to calculate factorial
   decq %rcx
   cmp $0,%rcx
   je print
   imul %rcx,%rax
   cmp $1,%rcx
   jne Repeat
# Now result of factorial stored in rax
print:
     xorq %rsi, %rsi

  # function to print integer result digit by digit by pushing in 
       #stack
  loop:
    movq $0, %rdx
    movq $10, %rbx
    divq %rbx
    addq $48, %rdx
    pushq %rdx
    incq %rsi
    cmpq $0, %rax
    jz   next
    jmp loop

  next:
    cmpq $0, %rsi …
Run Code Online (Sandbox Code Playgroud)

linux assembly x86-64 att

2
推荐指数
1
解决办法
2969
查看次数

标签 统计

assembly ×1

att ×1

linux ×1

x86-64 ×1