请教达人: 关于汇编语言中符号 $ 的用法

somebodykiss 2007-12-25 12:58:51
在课堂上老师说这个 符号 $ 用于指向当前指针。 我想问:
㈠ 这个指向当前指针的符号 $ 指向的是谁的指针? 是在DATA SEGMENT …… DATA ENDS 中定义的数组,还是其他的什么?
㈡ 在CODE SEGMENT …… CODE ENDS中能不能使用这个$符号? 如果可以,怎么知道当前的 指向数据的指针 指向了哪个数据?

本来想自己google的,但是Google不能识别符号。麻烦大家了啊~~
...全文
1025 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
jacksui 2007-12-31
  • 打赏
  • 举报
回复

SJMP $ 等待,$是表示程序计数器的当前值
等价于
LOOP: JNB TF0 , LOOP
somebodykiss 2007-12-26
  • 打赏
  • 举报
回复
我学的是8086的汇编?不知道楼主用的是什么的?WIN32????What are OD and IDA?
===============================================================================================================================

我们就是学微机原理顺带着学的是8086。那估计就是8086的汇编了。唉,就学了点汇编的皮毛。看看别人的代码,才发现自己有好多都不了解,像CX存放loop的循环次数啊,AH存放终端类型啊,…… 这些书上还有讲解。像其他好多东西,书上根本没有怎么讲,就是讲的也是一笔带过,也没有可以参考的代码…… 】

不知道怎么做才能深入下去~~
hfut_gaolei 2007-12-25
  • 打赏
  • 举报
回复
我学的是8086的汇编?不知道楼主用的是什么的?WIN32????What are OD and IDA?
大熊猫侯佩 2007-12-25
  • 打赏
  • 举报
回复
$ 指向当前位置 , 比如 死循环 :

jmp $
pig4210 2007-12-25
  • 打赏
  • 举报
回复
比如你的程序这么写:
fun proc
mov eax,$
sub eax,$
cmp eax,-5 ;mov eax,$指令长度5
...

这是IDA的结果:

sub_10001031 proc near
mov eax, offset sub_10001031
sub eax, offset loc_10001036
cmp eax, -5
...

这是OD下看到的结果:


088A1031 B8 31108A08 mov eax, 088A1031
088A1036 2D 36108A08 sub eax, 088A1036
088A103B 83F8 FB cmp eax, -5


$的值就是当前它所在的位置。

zara 2007-12-25
  • 打赏
  • 举报
回复
1. $ 是指向 $ 所在位置. 比如:
org 0
dw $, 1245h, $ ; 第一个 $ 为 0000, 第二个 $ 则是 0004
2. $ 可以使用在任意地方, 只要符号语法规则. 指向数据的指针指向了哪个数据, 这个是程序自己来维护的吧, 自己写的程序中使用到的指针指向哪里, 如果自己都不知道, 那还有谁会知道

21,459

社区成员

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

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