您好,欢迎来到二三四教育网。
搜索
您的当前位置:首页汇编干货笔记->6.0 代码段中使用数据

汇编干货笔记->6.0 代码段中使用数据

来源:二三四教育网

以下是文字提取部分,阅读完毕的同学可以离开了
考虑这样一个问题
我们想用;循环;累加一组数据
显然这段数据;不在内存中;
;无法做到;循环操作

但你有没有想过
程序在运行时,会被;装入内存;
我们完全可以;借用这段内存;来放数据

;dw;是定义字型数据
这里定义了八个字型数据
我们说过,cs存放代码段的;段地址;
既然数据;在代码段中;
那么cs也必然是;数据的段地址;
它的;偏移地址;是0~E
;0,2,4,6,8,A,C,E;

下面我debug一下这个程序
红线部分是我们;存放的数据;
从IP=;0010;开始
是我们的;代码区域;

现在存在;一个问题;
debug中我们;可以设置;CS:IP=1CA5:10
但可执行文件.exe并;不知道程序入口;在哪里
exe文件只会;从CS:IP处;开始执行
你可以用start:;指定程序入口;

在;源程序一篇中;
我们说过end;代表程序的结束;
而这里end start指明了;程序的入口在start;
也就是说mov bx,0是程序的;第一条指令;

既然end可以指定程序的入口
那么如何知道;哪一条指令;是程序的入口
源程序一章讲过
可执行文件=;描述文件;+程序
;编译和连接;后
end start将;被转换为;入口地址
存储在;描述信息中;

当程序被;加载到内存;后
;加载者;会从描述信息中读取到入口地址
这个加载者就是前面我们说过的
;p1程序;

Copyright © 2019- how234.cn 版权所有 赣ICP备2023008801号-2

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务