小编bk5*_*545的帖子

从“db 0”加载寄存器不会将 0 加载到 EAX?

我已经用头撞墙一个多小时了,我不明白为什么下面的方法不起作用。如果我改为b: db 1b: db 0那么它应该打印 10,否则它应该打印 0。相反,程序总是打印 10。

我一直在编写一个编写程序集的项目,这是失败的单元测试之一,我只是不明白。它必须是一些简单的东西。

extern printf, exit

section .bss

section .data
b: db 1
x: dd 5
y: dd 5
z: dd 0
int_pattern: db "%i", 10, 0

global main

section .text

main:
mov eax, dword [b]
cmp eax, dword 0
je condition_end4

; add x and y
; store into z
mov eax, dword [rel x]
add eax, dword [rel y]
mov [rel z], eax

condition_end4:

; rsi = &z …
Run Code Online (Sandbox Code Playgroud)

linux assembly x86-64 nasm

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

标签 统计

assembly ×1

linux ×1

nasm ×1

x86-64 ×1