如何解决组装 x86 nasm yasm
为什么当我在 sumLoop 中尝试 push eax 添加一行代码时,我收到一个错误:错误:操作数 1 的大小无效
但是当我添加 push rsi 时一切都很好
x86_64 Linux 程序集
代码:
; -----
; Define constants
EXIT_SUCCESS equ 0 ; successful operation
SYS_exit equ 60 ; call code for terminate
; -----
; Define Data.
section .data
tab dq 1002,1004,1006,1008,10010
len dd 5
num dd 10
; ********************************************************
section .text
global _start
_start:
; -----
; Summation loop.
mov ecx,dword [len] ; get length value
mov rsi,0 ; index=0
sumLoop:
mov eax,dword [tab+(rsi*8)] ; get tab[rsi]
;add dword [sum],eax ; update sum
sub eax,dword [num]
push eax ; push eax on stack
inc rsi ; next item
loop sumLoop
; -----
; Done,terminate program.
last:
mov rax,SYS_exit ; call code for exit
mov rdi,EXIT_SUCCESS ; exit with success
syscall
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。