汇编语言教程-段寄存器的说明语句

来源:本站
导读:目前正在解读《汇编语言教程-段寄存器的说明语句》的相关信息,《汇编语言教程-段寄存器的说明语句》是由用户自行发布的知识型内容!下面请观看由(电工技术网 - www.9ddd.net)用户发布《汇编语言教程-段寄存器的说明语句》的详细说明。
简介:本文介绍了汇编语言中段寄存器的说明语句,希望对大家有所帮助。

在汇编语言源程序中可以定义多个段,每个段都要与一个段寄存器建立一种对应关系。建立这种对应关系的说明语句格式如下:

ASSUME段寄存器名:段名[,段寄存器名:段名,……]

其中:段寄存器是CS、DS、ES、SS、FS和GS,段名是在段定义语句说明时的段名。

在一条ASSUME语句中可建立多组段寄存器与段之间的关系,每种对应关系要用逗号分隔。例如,

ASSUME CS:CODE1, DS:DATA1

上面的语句说明了:CS对应于代码段CODE1,DS对应于数据段DATA1。

在ASSUME语句中,还可以用关键字NOTHING来说明某个段寄存器不与任何段相对应。下面语句说明了段寄存器ES不与某段相对应。

ASSUME ES:NOTHING

在通常情况下,代码段的第一条语句就是用ASSUME语句来说明段寄存器与段之间的对应关系。在代码段的其它位置,还可以用另一个ASSUME语句来改变前面ASSUME语句所说明的对应关系,这样,代码段中的指令就用最近的ASSUME语句所建立的对应关系来确定指令中的有关信息。

例6.1汇编语言段及其段说明语句的作用。

DATA1SEGMENT;定义数据段DATA1

word1DW5678h

byte1DB"ABCDEFG"

DATA1ENDS

DATA2SEGMENT;定义数据段DATA2

word2DW1234h

word3DW9876h

DATA2ENDS

DATA3SEGMENT;定义数据段DATA3

byte2DB?

DATA3ENDS

CODE1SEGMENT;编写代码段CODE1

ASSUMECS:CODE1, DS:DATA1, ES:DATA2;(1)

MOVAX, DATA1;(2)

MOVDS, AX;(3)

MOVAX, DATA2;(4)

MOVES, AX;(5)

MOVAX, word1;访问段DATA1中的字变量word1

MOVword2, AX;访问段DATA2中的字变量word2

ASSUMEDS:DATA3, ES:NOTHING;(6)

MOVAX, DATA3

MOVDS, AX

MOVBL, byte2;访问段DATA3中的字节变量byte2

MOVAX, 4C00H;(7)

INT21H;(8)

CODE1 ENDS

语句(1)和(6)分别说明了段和段寄存器之间的对应关系,其中语句(6)重新说明语句(1)所指定的对应关系。

二组语句(2)和(3)、(4)和(5)实现对段寄存器DS和ES赋初值。ASSUME说明语句只起说明作用,它不会对段寄存器赋值,所以,必须对有关段寄存器赋值。在以后的其它源程序中也都是用此方法来实现对数据段寄存器赋值的。

语句(7)和(8)是调用中断21H的4CH号功能来结束本程序的执行,程序的返回代码由寄存器AL来确定。结束本程序执行的指令是所有主模块必须书写的语句。

注意:代码段寄存器不能由程序员在源程序中对其赋值,其值是由操作系统在装入它进入系统运行时自动赋值的。

提醒:《汇编语言教程-段寄存器的说明语句》最后刷新时间 2024-03-14 01:00:51,本站为公益型个人网站,仅供个人学习和记录信息,不进行任何商业性质的盈利。如果内容、图片资源失效或内容涉及侵权,请反馈至,我们会及时处理。本站只保证内容的可读性,无法保证真实性,《汇编语言教程-段寄存器的说明语句》该内容的真实性请自行鉴别。