汇编

您所在的位置:网站首页 汇编怎么定义附加段 汇编

汇编

2024-06-06 06:06| 来源: 网络整理| 查看: 265

1.我们如果要一个程序在加载的时候取得所需要的空间,则必须要在源程序中做出说明。我们通过在源程序中定义段来进行内存空间的获取。 2.我们不能自己随便决定哪段空间可以使用,应该让系统来为我们分配。我们可以在程序中,定义我们希望处理的数据,这些数据就会被编译、连接程序作为程序的一部分写到可执行文件中。当可执行文件中的程序被加载入内存时,这些数据也同时被加载入内存中。与此同时,我们要处理的数据也就自然而然的获得了存储空间。 程序6.1 assume cs:code code segment dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h

mov bx,0 mov ax,0

mov cx,8 s:add ax,cs:[bx] add bx,2 loop s

mov ax,4c00h int 21h

code ends end 注:dw即“define word”; 2.程序入口不是我们所希望执行的指令。我们可以在源程序中指明程序的入口所在,如程序6.2: assume cs:code code segment dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h

start: mov bx,0 mov ax,0

mov cx,8

s: add ax,cs:[bx] add bx,2 loop s

mov ax,4c00h int 21h

code ends end start 注:end指令指明了程序的入口在标号start处,也就是说,“mov bx,0”是程序的第一条指令,在编译连接后,由“end start”指明的程序入口,被转化为一个入口地址,存储在可执行文件的描述信息中;在程序6.2生成的可执行文件中,这个入口的偏移地址部分为10H。当程序被加载入内存之后,加载者从程序的可执行文件的描述信息中读到程序的入口地址,设置CS:IP。这样CPU就从我们希望的地址处执行。 3.可执行文件由描述信息和程序组成,程序来自于源程序中的汇编指令和定义的数据;描述信息则主要是编译、连接查程序对源程序中相关的伪指令进行处理所得到的信息。 归根结底,我们要CPU从何处开始执行程序,只要在源程序中使用“end标号”指明就可以了。可以得出如下程序框架: assume cs:code code segment . . 数据 . . start: . . 代码 . . code ends end start



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3