相对于硬指令,伪指令完成诸如程序存储模式、主存变量、子程序、宏及段定义等一些不产生CPU动作的说明性工作,正确透彻的理解伪指令,对于理解汇编程序,程序结构,运行机制等至关重要。
一、参数、变量和标号
在源程序语句格式的4个组成部分中,参数是指令的操作对象,参数之间用逗号分隔。,汇编语言中,指令参数有数值型,它的主要形式是常数和数值表达式;还有地址型,主要形式是标号和名字(变量名、段名、过程名等)。我们知道,硬指令的参数有立即数、寄存器和存储单元,其中立即数要用数值型参数表达式,存储单元应该用地址型参数。
1、常数:表示一个固定的数值,分多种形式:
(1)十进制常数——0~9组成...


[2007-10-29 16:28] 【转贴】汇编伪指令一
阅读全文 |
作者:fishboy |
评论次数(1) |
浏览次数(2229)
[2007-10-29 16:32] 【转贴】汇编伪指令二
变量定义伪指令为变量申请固定查长度的存储空间,并可以同时将相应的存储单元初始化。
一、变量定义伪指令,格式如下:
变量名 伪指令 初值表
变量名为用户自定义标识符,表示初值表首元素的逻辑地址,即用这个符号表示地址,常称为符号地址。
初值表是用逗号分隔的参数,主要由数值常数、表达式或?、DUP组成,?代表初值不确定,即未付初值,重复初值可以用DUP进行定义。DUP格式:
重复次数 DUP (重复参数)
变量定义伪指令有DB/DW/DD/DF/DQ/DT
(1)、DB——定义字节单元伪指令,用于分配一个或多个字节单元,每个数据一定是字节量(Byte),可以是0~255的无...
一、变量定义伪指令,格式如下:
变量名 伪指令 初值表
变量名为用户自定义标识符,表示初值表首元素的逻辑地址,即用这个符号表示地址,常称为符号地址。
初值表是用逗号分隔的参数,主要由数值常数、表达式或?、DUP组成,?代表初值不确定,即未付初值,重复初值可以用DUP进行定义。DUP格式:
重复次数 DUP (重复参数)
变量定义伪指令有DB/DW/DD/DF/DQ/DT
(1)、DB——定义字节单元伪指令,用于分配一个或多个字节单元,每个数据一定是字节量(Byte),可以是0~255的无...
阅读全文 |
作者:fishboy |
评论次数(1) |
浏览次数(1023)
[2007-10-29 16:41] 【转贴】汇编伪指令三
程序段的定义和属性
一、DOS的程序结构
DOS操作系统的两种可执行程序是EXE和COM
1、EXE程序
EXE程序可以有独立的代码、数据和堆栈段,还可以有多个代码段和多个数据段,程序长度可以超过64KB,执行起始地址可以任意指定。规则的EXE文件在磁盘上由两部分组成:文件头和装入模块。装入模块就是程序本身。文件头则是由连接程序生成,包含有文件的控制信息和重定位信息,供DOS装入EXE文件时使用。实际上大EXE文件还可能包含一个附加部分,此部分由开发者用连接程序以外的工具附加到程序末尾,不属于装入模块,也不直接装入主存,仅供程序本身使用。当DOS装入或执行一个程序时,DOS确定当时主存...
一、DOS的程序结构
DOS操作系统的两种可执行程序是EXE和COM
1、EXE程序
EXE程序可以有独立的代码、数据和堆栈段,还可以有多个代码段和多个数据段,程序长度可以超过64KB,执行起始地址可以任意指定。规则的EXE文件在磁盘上由两部分组成:文件头和装入模块。装入模块就是程序本身。文件头则是由连接程序生成,包含有文件的控制信息和重定位信息,供DOS装入EXE文件时使用。实际上大EXE文件还可能包含一个附加部分,此部分由开发者用连接程序以外的工具附加到程序末尾,不属于装入模块,也不直接装入主存,仅供程序本身使用。当DOS装入或执行一个程序时,DOS确定当时主存...
阅读全文 |
作者:fishboy |
评论次数(2) |
浏览次数(1013)
[2007-10-29 16:44] 【转贴】汇编伪指令五
类似于高级语言中用户自定义复合数据类型,MASM允许将若干个相关的单个变量作为一个组来进行整体数据定义,然后通过相应的结构预置语句得变量分配空间。
1、结构
结构(STRUCTURE)把各种不同类型的数据组织到一个数据机构中,便于某些变量的处理。
(1)结构类型的说明
结构名 STRUCT
....
结构名 ENDS
如:学生成绩结构
student struct
sid dw ?
sname db 'abcdefgh'
Math db 0
English db 0
student ends
结构类型中所含的变量,...
1、结构
结构(STRUCTURE)把各种不同类型的数据组织到一个数据机构中,便于某些变量的处理。
(1)结构类型的说明
结构名 STRUCT
....
结构名 ENDS
如:学生成绩结构
student struct
sid dw ?
sname db 'abcdefgh'
Math db 0
English db 0
student ends
结构类型中所含的变量,...
阅读全文 |
作者:fishboy |
评论次数(4) |
浏览次数(2265)
[2007-10-29 16:43] 【转贴】汇编伪指令四
完整段定义格式的伪指令
1、完整段定义伪指令
完整段定义由SEGMENT和ENDS这一对伪指令实现,格式如下:
段名 segment [定位类型] [组合类型] [段字/寻址方式] ['类别']
。。。。。
段名 ends
段定义后的4个关键字由来确定段的各种属性,堆栈段要使用stack组合类型,代码段应具有‘code’类别,其他为可选性参数。
(1)定位类型(align)——指定逻辑段在主存储器中的边界,该关键字可为:
BYTE:段开始为下一个可用的字节地址(xxxx xxxxB),属性值为1
WORD:段开始为下一个可用的偶数地址(xxxx xxx0B...
1、完整段定义伪指令
完整段定义由SEGMENT和ENDS这一对伪指令实现,格式如下:
段名 segment [定位类型] [组合类型] [段字/寻址方式] ['类别']
。。。。。
段名 ends
段定义后的4个关键字由来确定段的各种属性,堆栈段要使用stack组合类型,代码段应具有‘code’类别,其他为可选性参数。
(1)定位类型(align)——指定逻辑段在主存储器中的边界,该关键字可为:
BYTE:段开始为下一个可用的字节地址(xxxx xxxxB),属性值为1
WORD:段开始为下一个可用的偶数地址(xxxx xxx0B...
阅读全文 |
作者:fishboy |
评论次数(0) |
浏览次数(908)
页码数(1):
1