12.代码段、数据段、栈段、dup指令
-
数据类型
-
BYTE:8位,即两位16进制数
- 创建方式:db(define byte)
-
WORD:16位,即四位16进制数
-
创建方式:dw
-
DWORD:32位,即八位16进制数
-
创建方式:dd
-
QWORD:64位,即十六位16进制数
-
创建方式:dq
在代码中创建代码段、数据段、栈段
assume cs:codesg,ds:data,ss:stack
data segment
db 'hello world'
dw 123H,456H,789H
db 3 dup (1,2,3)
db 3 dup ('abc','def')
data ends
stack segment
db 10 dup (0)
stack ends
codesg segment
start:
mov ax,0
mov bx,0
int 21H
codesg ends
end start
数据段和栈段的编写方式和代码段是类似的,其中dup是指重复(duplicate),10 dup (0)
是指重复十次0,也就是10个0,
但是代码段为什么这次我们加了一个start标识呢,这是为了让编译器区分开代码和数据,否则代码会和数据混在一起,导致执行出错
我们可以发现数据都被放在了076A:0000处