相关疑难解决方法(0)

Mach-O 64位格式不支持32位绝对地址。NASM访问阵列

使用以下命令在我的Mac计算机上运行此代码:

nasm -f macho64 -o max.a maximum.asm
Run Code Online (Sandbox Code Playgroud)

这是我尝试在计算机上运行的代码,该代码在数组中找到最大的数字。

section .data

data_items:
    dd 3,67,34,222,45,75,54,34,44,33,22,11,66,0

    section .text

global _start

_start:
    mov edi, 0
    mov eax, [data_items + edi*4]
    mov ebx, eax

start_loop:
    cmp eax, 0
    je loop_exit
    inc edi
    mov eax, [data_items + edi*4]
    cmp eax, ebx
    jle start_loop

mov ebx, eax
jmp start_loop

loop_exit:

mov eax, 1
int 0x80
Run Code Online (Sandbox Code Playgroud)

错误:

maximum.asm:14: error: Mach-O 64-bit format does not support 32-bit absolute addresses
maximum.asm:21: error: Mach-O 64-bit format does not support 32-bit absolute …
Run Code Online (Sandbox Code Playgroud)

x86-64 mach-o nasm

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

引用内存位置的内容.(x86寻址模式)

我有一个内存位置,其中包含一个我想要与另一个角色进行比较的角色(并且它不在堆栈的顶部,所以我不能只是pop它).如何引用内存位置的内容以便进行比较?

基本上我如何在语法上做到这一点.

x86 assembly masm addressing-mode

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

标签 统计

addressing-mode ×1

assembly ×1

mach-o ×1

masm ×1

nasm ×1

x86 ×1

x86-64 ×1