一段小汇编代码求解基础的
时间:2010-12-08
来源:互联网
我的汇编程序是这样: 看起来内容很多哈,不过问题很简单哈
.const
szCaption db '恭喜',0
szText db '当您看到这个信息的时候,您已经可以编译Win32汇编程序了!',0
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.code
start:
mov al,1
mov al,szText
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
end start
我自己反汇编后见到如下图
00401000 > $ B0 01 MOV AL,1
00401002 . A0 05204000 MOV AL,BYTE PTR DS:[402005]
00401007 . 0000 ADD BYTE PTR DS:[EAX],AL
00401009 . 0000 ADD BYTE PTR DS:[EAX],AL
0040100B . 0000 ADD BYTE PTR DS:[EAX],AL
0040100D . 0000 ADD BYTE PTR DS:[EAX],AL
0040100F . 0000 ADD BYTE PTR DS:[EAX],AL
00401011 . 0000 ADD BYTE PTR DS:[EAX],AL
00402000 B9 A7 CF B2 00 B5 B1 C4 FA BF B4 B5 BD D5 E2 B8 恭喜.当您看到这
00402010 D0 C5 CF A2 B5 C4 CA B1 BA F2 A3 AC C4 FA D2 到这消息的时候
代码我把想要问的截出来了哈
我的问题是:
1:在DOS的汇编下,data段的数据或code段的代码数据都是按顺序进行存储的,在WIN32下,这个const段它是怎么样存储在内存里面了呢,怎么会在code段后面呢?
2:像00401000,00401002,00401009这些地址是线性地址还是虚拟地址?
3:如果00401000,00401002,00401009表示是线性地址的话,DS:[402005]是不是要经过gdtr一系列转换最后结果就是402005的线性地址?
.const
szCaption db '恭喜',0
szText db '当您看到这个信息的时候,您已经可以编译Win32汇编程序了!',0
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
; 代码段
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
.code
start:
mov al,1
mov al,szText
;>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
end start
我自己反汇编后见到如下图
00401000 > $ B0 01 MOV AL,1
00401002 . A0 05204000 MOV AL,BYTE PTR DS:[402005]
00401007 . 0000 ADD BYTE PTR DS:[EAX],AL
00401009 . 0000 ADD BYTE PTR DS:[EAX],AL
0040100B . 0000 ADD BYTE PTR DS:[EAX],AL
0040100D . 0000 ADD BYTE PTR DS:[EAX],AL
0040100F . 0000 ADD BYTE PTR DS:[EAX],AL
00401011 . 0000 ADD BYTE PTR DS:[EAX],AL
00402000 B9 A7 CF B2 00 B5 B1 C4 FA BF B4 B5 BD D5 E2 B8 恭喜.当您看到这
00402010 D0 C5 CF A2 B5 C4 CA B1 BA F2 A3 AC C4 FA D2 到这消息的时候
代码我把想要问的截出来了哈
我的问题是:
1:在DOS的汇编下,data段的数据或code段的代码数据都是按顺序进行存储的,在WIN32下,这个const段它是怎么样存储在内存里面了呢,怎么会在code段后面呢?
2:像00401000,00401002,00401009这些地址是线性地址还是虚拟地址?
3:如果00401000,00401002,00401009表示是线性地址的话,DS:[402005]是不是要经过gdtr一系列转换最后结果就是402005的线性地址?
作者: yg23hxj 发布时间: 2010-12-08
再问下其中的$ B0 01,A0 05204000hex数据怎么看他们的作用了,知道的朋友说下,谢谢
网上说什么前两位表示数据位数,哪里的数据?一头雾水哈
网上说什么前两位表示数据位数,哪里的数据?一头雾水哈
作者: yg23hxj 发布时间: 2010-12-08
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28