相关疑难解决方法(0)

在程序集中定义字符串常量的语法是什么?

我正在学习汇编我看到两个定义字符串的例子:

msg db'你好,世界!',0xa

  • 0xa在这里意味着什么?

消息DB'我喜欢它!',0

  • 为什么我们这里有0?
  • 它是一个尾随空字符?
  • 为什么我们有0xa上面的例子但这里有0?(似乎它们与字符串长度无关)

如果以上示例是两种定义汇编字符串的方法,那么程序如何区分它们呢?

在此先感谢任何帮助:)

string assembly

11
推荐指数
1
解决办法
2万
查看次数

dw和dd与字符串的db指令有什么不同?

假设我想在运行汇编程序(in section .data)之前定义一个初始化的变量字符串.我选择创建的变量被调用Digits,它是一个包含所有十六进制符号的字符串.

Digits: db "0123456789ABCDEF"
Run Code Online (Sandbox Code Playgroud)

我用变量定义了变量db,这意味着定义了字节.这是否意味着Digits变量长度为8位?这对我来说似乎没有意义,因为:

字符串中的每个字符都是ASCII字符,因此每个字符需要2个字节.总的来说,整个字符串需要32个字节!

那么当我将变量定义为byte时,它意味着什么?双字?我没有看到差异.由于我的误解,告诉字符串所需的数据类型似乎是多余的.

PD:这个问题没有帮助我理解.

string x86 assembly masm nasm

3
推荐指数
1
解决办法
1024
查看次数

标签 统计

assembly ×2

string ×2

masm ×1

nasm ×1

x86 ×1