2

我可以在 NASM 中创建一个新标签,它指向一个新的内存位置,该位置与另一个标签指向的内存位置偏移几个字节。

例如:如果 label1 指向内存位置 0x40h,有没有办法使用 label1 定义指向 0x44h 的 label2?

4

2 回答 2

2

您可以定义一个常量,它可以像标签一样使用:

label2 equ label1+4
于 2012-08-11T00:25:24.030 回答
2

目前尚不清楚您要做什么,但我会回答我认为您想要的。假设您已经将 label1 设置为

label1: db "Hello World", 10

你只想打印“世界”位。您可以按以下方式执行此操作(演示为具有 32 位 Intel 语法的 Linux,但在其他情况下也可以使用):

mov eax, 4
mov ebx, 1
mov ecx, label1
add ecx, 6             
mov edx, 6            
int 80h

我希望这是有道理的,所以您将“label1”的引用放在 ecx 中,然后将该引用增加您想要抵消的数量。

于 2012-09-08T09:21:35.390 回答