困惑已久的问题 保护模式下程序运行时如何寻址,直接用线性地址那还是段基地址+段内偏移?

realmiss 2003-09-28 08:39:41
.386
.model flat, stdcall
option casemap:none
include \masm32\include\windows.inc
include \masm32\include\kernel32.inc
includelib kernel32.lib
include \masm32\include\user32.inc
includelib user32.lib

.data
MsgCaption db "Iczelion's tutorial no.2",0
MsgBoxText db "Win32 Assembly is Great!",0

.code
start:
invoke MessageBox, NULL,addr MsgBoxText, addr MsgCaption, MB_OK
invoke ExitProcess,NULL
end start

上面的代码编译后 在win32Dasm中反汇编结果如下
//******************** Program Entry Point ********
:00401000 6A00 push 00000000
:00401002 6800304000 push 00403000 ;此处压入堆栈的地址是线性
; 还是段内偏移地址
* Possible StringData Ref from Data Obj ->"Win32 Assembly is Great!"
|
:00401007 6819304000 push 00403019 ; 疑问同上
:0040100C 6A00 push 00000000

* Reference To: USER32.MessageBoxA, Ord:01BBh
|
:0040100E E80D000000 Call 00401020 ; 此处调用是段间转移吗?
; 地址是线性地址还是段偏
; 移地址 为什么没有选择子

:00401013 6A00 push 00000000
* Reference To: KERNEL32.ExitProcess, Ord:0075h
|
:00401015 E800000000 Call 0040101A ;疑问同上

* Referenced by a CALL at Address:
|:00401015
|

* Reference To: KERNEL32.ExitProcess, Ord:0075h
|
:0040101A FF2500204000 Jmp dword ptr [00402000]

* Reference To: USER32.MessageBoxA, Ord:01BBh
|
:00401020 FF2508204000 Jmp dword ptr [00402008]
:00401026 00000000000000000000 BYTE 10 DUP(0)
...全文
163 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
realmiss 2003-09-28
  • 打赏
  • 举报
回复
你说的这些太重要了 这个问题从我接触保护模式汇编到现在一直纳闷 现在总算明白了 送分^_^
wowocock 2003-09-28
  • 打赏
  • 举报
回复
倒,网上到处有资料的,很容易的东西啊.
realmiss 2003-09-28
  • 打赏
  • 举报
回复
是你自己说的所有段的
唉 我怎么早不知道 郁闷了好久 顺便问你啊 你怎么知道这些的?或者在什么资料看过的?或者自己领悟的?
wowocock 2003-09-28
  • 打赏
  • 举报
回复
倒,我所指的段CD,DS,ES,SS
不包括FS,GS,WINSOWS下GS 永远为0,FS则包括了相应的数据结构,比如SEH等.
realmiss 2003-09-28
  • 打赏
  • 举报
回复
所有的段基地址相同?
在softice中断了某个程序时我打了下面两条指令
d fs:12345
d cs:12345
但是数据显示却是不一样的 怎么解释??????????????
wowocock 2003-09-28
  • 打赏
  • 举报
回复
WINDOWS下所有的段都是BASE 0,LIMIT 4GB的所以不存在段的概念

线性地址=段基地址+段内偏移
本文基于中国A股上市企业数据,分析了逻辑型和学习型AI技术应用对企业创新的影响。通过机器学习生成AI词典并分析年报文本,测量AI应用水平。研究发现,AI应用通过增加知识多样性、打破组织惯例和提高资源配置效率促进企业创新,且企业的吸收能力增强了这一促进作用 参照李玉花(2024)的做法,团队对来自中国工业经济《人工智能技术应用如何影响企业创新》一文中的基准回归部分进行复刻 团队将原文数据更新至2023年,并对基准回归进行复刻。数据年份为2007-2023年,包括原始数据、处理dofile,基准回归代码 一、数据介绍 数据名称:人工智能技术应用如何影响企业创新 数据范围:A股上市公司 数据年份:2007-2023年 有效样本:33615条 数据说明:参考《管理世界》中姚加权(2024)的做法,测算人工智能水平 内含原始数据、dofile和基准回归 二、数据指标 股票代码 股票简称 年份 省份 城市 区县 省份代码 城市代码 区县代码 行业代码 行业名称 企业上市年龄_年 是否ST或金融类 总资产_万元 营业收入增长率_% 资产负债率_% 总资产收益率_% 研发投入占营业收入比例_% 人工智能词频和 人工智能词频和加1取对数 企业专利申请总量 企业发明专利申请量 企业专利授权总量 企业发明专利授权量 三、参考文献 李玉花,林雨昕,李丹丹.人工智能技术应用如何影响企业创新[J].中国工业经济,2024,(10):155-173.

21,496

社区成员

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

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