Assembly NASM-变量基础

Assembly NASM-变量基础,assembly,nasm,Assembly,Nasm,我知道您可以通过以下方式在nasm中创建字符串: mystring db 'Hello World' 但是如果我想移动一个字符,比如说e,字符串中的第二个字符到al寄存器。我该怎么做?我应该写信吗 mov al, mystring+1 还是什么?那我怎么做一个int变量呢?我可以写: myint db 4 “mystring+1”是字符串第二个字节的地址 mov al,mystring+1 将该地址的(最低有效字节)存储在al中。要指示您不想存储该地址,但要存储位于该地址的字节,请写入以下

我知道您可以通过以下方式在nasm中创建字符串:

mystring db 'Hello World'
但是如果我想移动一个字符,比如说e,字符串中的第二个字符到al寄存器。我该怎么做?我应该写信吗

mov al, mystring+1
还是什么?那我怎么做一个int变量呢?我可以写:

myint db 4

“mystring+1”是字符串第二个字节的地址

mov al,mystring+1

将该地址的(最低有效字节)存储在al中。要指示您不想存储该地址,但要存储位于该地址的字节,请写入以下内容:

mov al,[mystring+1]

要声明等于42的四字节整数,请使用:

myint dd 42


您应该阅读NASM文档。但是对于一个“单词”,整数变量应该是
myint dw 4
,对于一个双单词,整数变量应该是
myint dd 4
db
是一个定义字节。和
mov al,mystring+1
尝试将
mystring
地址的低位字节加1移动到
al
@lower中,那么我如何给字节一个值?如何将值设置为整数?根据您的汇编风格,您也可以说
mov al,字节ptr mystring+1
@DavidHoelzer OP的问题是关于NASM@AntoineMathys我认为您可以更具体地说明
mov al,string+1
清楚地说明它在al中存储第二个字节的截断地址。