小编sar*_*ona的帖子

关于 8086 程序集的 DB 和 DUP 指令

所以我遇到了一个问题,让我质疑我对DB(define byte) 和DUP(duplicate) 指令的基本理解。我对它们的理解方式是:

  • NUM DB 34将创建一个名为NUM的变量,并为其分配值 34。类似于 C char NUM = 34;1
  • NUM DB 34 DUP(?)会给我一个包含 34 个项目的数组,每个项目都未分配。
  • NUM DB 3 DUP(4)会给我一个名为NUM的数组,其中包含 3 个项目:4、4、4。

它是否正确?

在我的教科书中我遇到过:

PRINT_SELECT DB 133 (?)
             DB 123 (?)
Run Code Online (Sandbox Code Playgroud)

这只是教科书上的一个错误,还是这两行代码完全有其他含义?


脚注 1:(编者注):NUM = 34在 asm 中定义了一个不存储在数据存储器中的汇编时常量。在 MASM 语法汇编器中,它的工作方式与某些上下文中的变量类似。但例如mul NUM仅适用于内存源,不适用于立即数, whileimul eax, ecx, NUM或 ,shl ax, NUMmov ax, NUM / 2仅适用于立即数,不适用于内存源。

assembly directive x86-16

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

标签 统计

assembly ×1

directive ×1

x86-16 ×1