NASM(64位系统调用)

时间:2014-04-21 08:32:49

标签: nasm

如何使用额外的片段和适当的偏移来存储2位数据....我厌倦了这种方式..

SECTION .data

offset : db 0100H

data : db 56H

SECTION .bss 

.......(initializations not required in this program)

SECTION .text

global main

main :

mov ax,1000H

mov es,ax

mov si,[offset]

mov al,[data]

mov es:[si],al

mov rdi,0

mov rax,60

syscall

这有什么问题?我在nasm编程方面是全新的......

1 个答案:

答案 0 :(得分:0)

使用segent指针直接访问某个内存地址只能在16位实模式下工作。在64位保护模式下,MMU将物理内存地址映射到应用程序可见地址。这通常由操作系统管理,而用户空间应用程序根本不允许使用它进行调节。如果你想访问某些物理内存,你需要告诉操作系统以某种方式将它映射到你的内存空间。