dd-dup
Tutorial: 汇编基础
Category: C语言
Published: 2026-04-07 13:58:26
Views: 20
Likes: 0
Comments: 0
1. dd 指令
ASSUME CS:code,DS:data,SS:stack
data SEGMENT
dd 1
dd 100001 ; 2 word | 4 byte
dw 1 ; 1 word | 2 byte
db 1 ; 1 byte
db "zk" ; 1 byte
data ENDS
stack SEGMENT
DB 128 dup(1) ; 8x16行0
stack ENDS
code SEGMENT
start:mov ax, stack
mov ss,ax
mov sp,128
mov ax,data
mov ds,ax
mov ax,4C00H
int 21h
code ENDS
END start
-d ds:0 f
0E24:0000 01 00 00 00 A1 86 01 00-01 00 01 7A 6B 00 00 00 ...........zk...
2. 使用 dd 计算 100001 / 100
ASSUME CS:code,DS:data,SS:stack
data SEGMENT
dd 100001 ; 2 word | 4 byte | 2^32 = 4294 967 296
dw 1 ; 1 word | 2 byte | 2^16 = 65536
db 1 ; 1 byte | 2^8 = 256
; ax/bx/cx/dx 存放一个字, 就是两个字节
data ENDS
stack SEGMENT
DB 128 dup(0) ; 8x16行0
stack ENDS
code SEGMENT
start:mov ax, stack
mov ss,ax
mov sp,128
mov ax,data
mov ds,ax
mov ax,ds:[0]
mov dx,ds:[2]
mov bx,64H
div bx
mov ax,4C00H
int 21h
code ENDS
END start
-u
0E2D:0000 B8250E MOV AX,0E25
0E2D:0003 8ED0 MOV SS,AX
0E2D:0005 BC8000 MOV SP,0080
0E2D:0008 B8240E MOV AX,0E24
0E2D:000B 8ED8 MOV DS,AX
0E2D:000D A10000 MOV AX,[0000]
0E2D:0010 8B160200 MOV DX,[0002]
0E2D:0014 BB6400 MOV BX,0064
0E2D:0017 F7F3 DIV BX
0E2D:0019 B8004C MOV AX,4C00
0E2D:001C CD21 INT 21
0E2D:001E E89A07 CALL 07BB
-g 17
AX=86A1 BX=0064 CX=00AE DX=0001 SP=0080 BP=0000 SI=0000 DI=0000
DS=0E24 ES=0E14 SS=0E25 CS=0E2D IP=0017 NV UP EI PL NZ NA PO NC
0E2D:0017 F7F3 DIV BX
-d ds:0
0E24:0000 A1 86 01 00 01 00 01 00-00 00 00 00 00 00 00 00 ................
0E24:0010 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0E24:0020 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0E24:0030 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0E24:0040 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0E24:0050 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0E24:0060 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0E24:0070 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
-t
AX=03E8 BX=0064 CX=00AE DX=0001 SP=0080 BP=0000 SI=0000 DI=0000
DS=0E24 ES=0E14 SS=0E25 CS=0E2D IP=0019 NV UP EI PL NZ NA PO CY
0E2D:0019 B8004C MOV AX,4C00
3. dup 伪指令
stack SEGMENT
DB 16 dup(0)
DW 16 dup(1)
DD 16 dup(2)
stack ENDS
-d ss:0
0E25:0000 00 00 00 00 00 00 00 00-00 00 00 00 00 00 00 00 ................
0E25:0010 01 00 01 00 01 00 01 00-01 00 01 00 01 00 01 00 ................
0E25:0020 01 00 01 00 01 00 01 00-01 00 01 00 01 00 01 00 ................
0E25:0030 02 00 00 00 02 00 00 00-02 00 00 00 02 00 00 00 ................
0E25:0040 02 00 00 00 02 00 00 00-02 00 00 00 02 00 00 00 ................
0E25:0050 02 00 00 00 02 00 00 00-02 00 00 00 02 00 00 00 ................
0E25:0060 02 00 00 00 02 00 00 00-02 00 00 00 02 00 00 00 ................