关于PTR操作符及相关伪指令

czlyc006 2007-04-08 10:59:41
个人汇编相对于C++而言更加底层,例如C++中看似比较难以理解的指针概念在汇编中就是最基本的寻址。但想在汇编中实现概念上的“指针”,下面的程序段应该如何理解?

PBYTE TYPEDEF PTR BYTE ;此处不能理解,定义PBYTE的用户类型但为何PTR
;操作符会放在BYTE伪指令之前?
PWORD TYPEDEF PTR WORD

.data
arrayB BYTE 10h,20h,30h
arrayW WORD 1,2,3

ptr1 PBYTE arrayB
ptr2 PBYTE arrayW ;如果此处将ptr2定义为PBYTE并指向arrayW,在程序中引用的结果会如何?

恳请各位指点!
...全文
824 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
大熊猫侯佩 2007-04-09
  • 打赏
  • 举报
回复
PBYTE TYPEDEF PTR BYTE

把 PBYTE 定义为指向 byte的指针类型
zara 2007-04-09
  • 打赏
  • 举报
回复
PBYTE TYPEDEF PTR BYTE ;此处不能理解,定义PBYTE的用户类型但为何PTR
;操作符会放在BYTE伪指令之前?

下面的英文部分是从 Masm6 的 PTR 说明中复制出来的. PTR 的第二个使用方法就是楼主述及的情况. 即在预定义一个数据类型时, PTR 放在类型的前面. 这个, 只是个规定.


Syntax: qualifiedtype PTR expression
PTR qualifiedtype

See also: TYPE, THIS

Description:

The first syntax treats <expression> as having the specified type.
Type casting can be used with forward references or unlabeled
addresses to specify a reference size, type, or distance.

The second syntax is used in defining qualified types.
See: qualified type

The PTR keyword can also appear in qualified types to indicate
that the type is a pointer variable.

The <qualifiedtype> can be any qualified type. The <expression>
can be any valid expression. If <qualifiedtype> is a distance,
<expression> cannot be a memory expresssion or a data label.
See: qualified type

21,497

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧