第五章汇编语言程序结构 注释( Comments)字段:用来说明该伪操作的功能,它也是可有可无的 助记符( Mnemonic)字段:说明所用伪操作的助记符,常用的有以下几种 DB伪操作:用来定义字节,其后的每个操作数都占有一个字节。 Dw的操作:用来定义字,其后的每个操作数占有一个字(低位字节 在第一个字节地址中,高位字节在第二个字节地址中) DD伪操作:用来定义双字,其后的每个操作数占有二个字。 DQ伪操作:用来定义四个字,其后的每个操作数占有四个字。 DT伪操作:用来定义十个字节,其后的每个操作数占有十个字节 ,形成压缩的BCD码。 这些伪操作可以把其后面跟着的数据存入指定的存储单元,或者只分配存储器空 间而并不存入确定的数值。DW和DD伪操作可以存储偏移地址或完整的地址
第五章第一章汇编语言程序结构 基础知识 注释(Comments)字段:用来说明该伪操作的功能,它也是可有可无的。 助记符(Mnemonic)字段:说明所用伪操作的助记符,常用的有以下几种: DB伪操作:用来定义字节,其后的每个操作数都占有一个字节。 DW的操作:用来定义字,其后的每个操作数占有一个字(低位字节 在第一个字节地址中,高位字节在第二个字节地址中)。 DD伪操作:用来定义双字,其后的每个操作数占有二个字。 DQ伪操作:用来定义四个字,其后的每个操作数占有四个字。 DT伪操作:用来定义十个字节,其后的每个操作数占有十个字节 ,形成压缩的BCD码。 这些伪操作可以把其后面跟着的数据存入指定的存储单元,或者只分配存储器空 间而并不存入确定的数值。DW和DD伪操作可以存储偏移地址或完整的地址
第五章汇编语言程序结构 例操作数可以是常数,或者是表达式(根 据该表达式可以求得一个常数),如 DATA_BYTE O A10d DATA BYTE DB 10, 4,0H 1010h DATA_WORDI64 DATA WORD DW 100, 100H, -5 00d 00 DATA-DW dd 3*20, OFFFDH 00 0 汇编程序可以在汇编期间在存储器中存入 数据,如右图所示。 FF DATA_DWI 3 C 例操作数也可以是字符串,如 00 60d MESSAGE DB hello 00 00 则存储器存储情况如下图所示: F oFFF MESSAGE」4 00 00
第五章第一章汇编语言程序结构 基础知识 例 操作数可以是常数,或者是表达式(根 据该表达式可以求得一个常数),如 DATA_BYTE DB 10,4,l0H DATA_WORD DW 100,100H,-5 DATA—DW DD 3*20,0FFFDH 汇编程序可以在汇编期间在存储器中存入 数据,如右图所示。 例 操作数也可以是字符串,如: MESSAGE DB ‘H2LLO’ 则存储器存储情况如下图所示:
第五章汇编语言程序结 注意:DBAB和DWAB的存储分配空间的不同。如下图: A 42B 42【B 4 A DB 'Al DY 'AB ABCD 例操作数?可以保留存储空间,但不存 入数据。 00 F 如: ABC DB0,?,?,?,0 DFF DW ?.52.? 34 52d 00 经汇编后的存储情况如右图所示
第五章第一章汇编语言程序结构 基础知识 注意:DB ’AB’和DW ’AB’的存储分配空间的不同。如下图: 例 操作数?可以保留存储空间,但不存 入数据。 如:ABC DB 0,?, ?, ?,0 DFF DW ?, 52, ? 经汇编后的存储情况如右图所示
第五章汇编语言程序结 操作数字段还可以使用复制操作符来复制某个(或某些)操作数。其格式为: repeat count DUP(operate, operate,.) 其中 repeat coun可以是一个表达式, 它的值应该是一个正整数,用来指定括号 ARRAYi 0 0 中的操作数的重复次数。 B ARRAYI DB 2 DUP(0, 1, 2,? 00 ARRAY2 DB 100 DUP(?) 01 02 汇编后的存储情况如下图所示。 ARRAYI DB 2 DUP(0, 1, 2,?) ARRAY2 和以下语句是等价的 100个字节 ARRAYI DB O, 2,?,0, 1, 2,?
第五章第一章汇编语言程序结构 基础知识 操作数字段还可以使用复制操作符来复制某个(或某些)操作数。其格式为: repeat_count DUP(operate, operate,…) 其中repeat_count可以是一个表达式, 它的值应该是一个正整数,用来指定括号 中的操作数的重复次数。 例 ARRAYl DB 2 DUP(0,1,2,?) ARRAY2 DB 100 DUP(?) 汇编后的存储情况如下图所示。 ARRAYl DB 2 DUP(0,1,2,?) 和以下语句是等价的: ARRAYl DB 0,I,2,?,0,1,2,?
第五章汇编语言程序结构 例DUP操作可以嵌套,例如 ARRAY3 0 0 ARRAY3 DB 10ODUP(O, 2 DUP(1, 2), 0, 3) 0 则汇编结果如右图所示: 02 0 可以用DW或DD伪操作把变量或标号的偏移地址 02 (DW)或整个地址(DD存入存储器。用DD伪操作存入00 地址时,第一个字为偏移地址,第二个字为段地址。 03 例如 重复]00次 PARAMETER TABLE DW PARI 共700个字节 DW PAR2 00 01 DW PAR3 02 INTERSEG DATA DD DATAI DD DATAZ 02 则汇编后的存储情况如下图所示。其中偏移地址或段地址 均占有一个宇,其低位字节占有第一个字节,高位字节占 有第二个字节
第五章第一章汇编语言程序结构 基础知识 例 DUP操作可以嵌套,例如 ARRAY3 DB 100DUP(0,2 DUP(1,2),0,3) 则汇编结果如右图所示: 可以用DW或DD伪操作把变量或标号的偏移地址 (DW)或整个地址(DD)存入存储器。用DD伪操作存入 地址时,第一个字为偏移地址,第二个字为段地址。 例如 PARAMETER_TABLE DW PAR1 DW PAR2 DW PAR3 INTERSEG_DATA DD DATA1 DD DATA2 则汇编后的存储情况如下图所示。其中偏移地址或段地址 均占有一个宇,其低位字节占有第一个字节,高位字节占 有第二个字节