MASM6.11中指针变量初始化

本文介绍MASM6.11汇编语言中指针变量的定义及初始化方法,包括如何使用不同指令定义变量,并通过实例展示了如何初始化指针变量。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MASM6.11中指针变量初始化


在MASM6.11中,我们可以用数据定义语句(DB/DW/DD/DF/DQ/DT)来定义并/或初始化变量,如:
VAR1 DB 0ABH


指针变量就是存放其他变量地址(指针)的变量。定义指针变量和定义普通变量一致(实际上,根本没有指针变量一说,
只是我根据它的功能"杜撰"的:)),只是是使用其他变量或标号来初始化。如下:
VAR1 DB 0ABH
P1 DW VAR1
P2 DD START

MASM6.11根据指针变量所在的定义段是USE16还是USE32(注意:不是初始化变量/标号所在的段),以及指针变量定义的大小不同而初始化不同的值。如指针定义如下:
P DW/DD/DF/DQ/DT VAR1

MASM6.11根据不同情况为指针变量准备的初始值如下:

P 所在段(不是 VAR1 所在段) USE16 USE32
DW VAR1 的 OFFSET VAR1 的 OFFSET
DD VAR1 的 SEG:OFFSET VAR1 的 OFFSET
DF VAR1 的 SEG:OFFSET VAR1 的 SEG:OFFSET
DQ VAR1 的 SEG:OFFSET VAR1 的 OFFSET
DT VAR1 的 SEG:OFFSET VAR1 的 OFFSET

一个特殊的标号——'$',表示当前偏移。它和上面说的变量和标号一样可以为指针变量初始化。下面举例:

DATA SEGMENT USEX
DB 0CCH
VAR1 DT $
DB 0CCH
VAR2 DQ $
DB 0CCH
VAR3 DF $
DB 0CCH
VAR4 DD $
DB 0CCH
VAR5 DW $
DATA ENDS

MASM6.11编译后,初始化后段的内容如下:
USE16
CC
01 00 F9 10 00 00 00 00 00 00
CC
0C 00 F9 10 00 00 00 00
CC
15 00 F9 10 00 00
CC
1C 00 F9 10
CC
21 00
CC

USE32
CC
01 00 00 00 00 00 00 00 00 00
CC
0C 00 00 00 00 00 00 00
CC
15 00 F9 10 00 00
CC
1C 00 00 00
CC
21 00
CC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值