为什么我不能在汇编中打印数字?

时间:2019-09-02 12:44:43

标签: linux assembly nasm

我的代码正确,但是linux不会打印我指定的ascii字符

因为我的代码是正确的,所以我没有做太多尝试,并且我遵循了教程。

def say_hello_first(fn):
    def wrapper(*args, *kwargs):
        print('Hello')
        return fn(*args, **kwargs)
    return wrapper

@say_hello_first
def foo(x):
    print(x)

@say_hello_first
def bar(a, b, c=3.14):
    print((a + b) * c)

本来应该打印123,因为digitSpace是123,但是什么也不打印。

1 个答案:

答案 0 :(得分:0)

这应该有效:

        global    _start

           section   .data
message:  db        "123", 10               ; note the newline at the end

         section   .text
_start:   mov       rax, 1                  ; system call for write
          mov       rdi, 1                  ; file handle 1 is stdout
          mov       rsi, message            ; address of string to output
          mov       rdx, 4                  ; number of bytes
          syscall                           ; invoke operating system to do the write
          mov       rax, 60                 ; system call for exit
          xor       rdi, rdi                ; exit code 0
          syscall                           ; invoke operating system to exit