明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1486|回复: 3

[经验] fas格式研究(六)内存中的lsp试验

[复制链接]
发表于 2019-1-22 14:52:13 | 显示全部楼层 |阅读模式
本帖最后由 baitang36 于 2019-8-21 15:36 编辑

做个小实验,看看加载后的lsp在内存中是什么样子
首先在cad的命令行输入以下代码。
命令: (defun C:TT() (SETQ A 8)(setq b "12345")(PRINC b)(princ a)(princ))
C:TT
命令: tt
123458
命令: !c:tt
#<SUBR @0c78ed5c C:TT>
这里的0c78ed5c就是 c:tt这个函数的地址,它指向一个链表。
在xdbg32中用dump命令看一下这个地址:
dump 0c78ed5c
04 62 AE 0E   00 00 00 00    E0 C2 76 0C    7C B6 6C 10    00 00 00
这个地址106cb67c 又指向一个链表
dump 0106cb67c     
F0 43 AE 0E  00 00 00 00  00 4B 84 0C   47 00 00 00  06 00 00 00  

地址0c844b00指向一块内存
内容如下:
Offset      0  1  2  3  4  5  6  7   8  9  A  B  C  D  E  F
00000000   F8 DB 7F 0C 00 00 00 00  B0 08 A5 0F 48 9C 78 0C   
00000010   C0 A1 A6 0F F8 28 A5 0F  17 01 00 32 08 0B 06 02     
00000020   00 0A 09 03 00 0B 06 04  00 0A 03 04 00 09 05 00                  
00000030   34 01 03 0A 03 02 00 09  05 00 34 01 03 0A 09 05      
00000040   00 34 00 03 21

青色的就是(SETQ A 8)(setq b "12345")(PRINC b)(princ a)(princ)
分解开看
17 01 00 函数开始标志
32 08 0B 06 02 00 0A  (SETQ A 8)
09 03 00 0B 06 04  00 0A  (setq b "12345")
03 04 00 09 05 00  34 01 03 0A (PRINC b)  
03 02 00 09  05 00 34 01 03 0A (princ a)
09 05 00 34 00 03  (princ)
21 函数结尾
其中 紫色的是字符串编号
2号是"A"
3号是"12345"
4号是"B"
5号是"PRINC"
没发现1号字符串,它去哪里了?


"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2019-2-22 20:32:22 | 显示全部楼层
后续呢,楼主
 楼主| 发表于 2019-8-21 15:38:34 | 显示全部楼层

后续的来了,请看。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2025-5-18 15:32 , Processed in 0.185956 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表