第六章 包含多个段的程序

一、在代码段中使用数据。

dw,作用为定义字型数据。dw=define word。dw定义时数据之间以逗号分隔。

eg:dw 0123h,0456h, 0789h

②程序6.1

反汇编:

g命令执行:

执行出现错误。

从0770:0010开始才是需要的机器码,数据被执行成了机器码。

两个方法解决:

法一:将IP值设为10h。

 

方法二:用start标号标出执行的入口。

 

二、在代码段中使用栈

用dw开辟空间作为栈的存放空间

引入dw的另一个使用方法:

dw 0,0,0,0,0,0,0,0 =dw 16 dup(0)

实例见实验五

三、将数据、代码、栈放入不同的段中

① 使用伪指令segment和ends定义逻辑段后,究竟是用作代码段、数据段还是栈,由程序员指定。

② 使用assume仅仅表示将某个逻辑段和某个段寄存器关联起来;真正当作特定的段使用,需要在代码段中设置相应的段寄存器值,如ds, ss。

段名代表的是段地址,是常数。不能使用mov直接送入段寄存器。

原文地址:https://www.cnblogs.com/Yangruzhang/p/10005447.html