第4章-汇编语言程序格式.ppt

  1. 1、本文档共78页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

DATA_BYTEDB10,4,10H,?DATA_WORDDW100,100H,-5,?例:1注:“?”表示保留存储空间但不存入数据-0AH04H10H-64H00H00H01HFBHFFH-DATA_BYTE?DATA_WORD?【例】DATA1DB10,4,10HDATA2DW100,100H,-5DATA3DD3*20,0FFFDH041064000001FBFF3C000000FDFF00000ADATA1DATA2DATA310d410hARRAYDB‘HELLO’DB‘AB’DW‘AB’48H45H4CH4CH4FH41H42H42H41HARRAY?DW1DD

DW2DD0abcd1243H78H56H34H12H43H12HCDHABHDW1?DW2?例例:3例2图例3图◆重复说明符DUP从前面的内容里,我们知道了定义少量内存变量的定义形式,但如果在程序中要说明50个、100个、200个甚至更多的、同类型的内存变量时,若采用前面所学的方法,对它们一一加以说明显然是不可行的。为此,汇编语言提供了变量的重复说明符DUP,其说明的一般形式如下:repeat_count?DUP?(表达式,表达式,…,表达式)解释:repeat_count是重复次数,(表达式,表达式,…,表达式)是被重复的部分,“表达式”可以是存储单元的初值,也可以是含义另一个DUP的式子。如果在表达式的括号中有多个表达式,那么,它们之间要用逗号‘,’分开。010200010200BUF1→BUF2→…100个字节例:BUF1DB2DUP(0,1,2,?)BUF2DB100DUP(?)例如:BUFFERDB100DUP(?)STRINGDB120DUP(ABCDE),0DB2DUP(0,2DUP(1,2),3)DATA1DW50DUP(10H,20DUP(1,2,3),20H)POINTSDD12,30DUP(0)从上面的例子可看出:用DUP说明内存变量相当于在高级语言中定义数组。-buffer?-100字节画出存储单元的分配图,计算分配字节数◆强制属性操作符PTR在程序中,我们有时需要对同一个存储单元以不同的属性来访问,或对一些不确定的存储属性需要显式指定等,这时,我们就需要强制属性操作符PTR。该操作符的作用有点象C语言中的类型强制方法。对于指令:MOV[BX],1H,其目标操作数[BX]是寄存器间接寻址方式,它指向一个存储单元。在作传送操作时,是把“1H”扩展成8位作字节传送,还是扩展成16位作字传送呢?这就使该指令具有二义性,因为[BX]指向的存储单元可以字节或字的首地址。含有该指令的程序在汇编时,可能会产生警告或出错信息。为了使指令中存储单元操作数具有明确的属性,我们可以使用强制属性操作符PTR。其一般格式为:数据类型PTR地址表达式其中:数据类型是前面所学的各种数据类型,常用的数据类型有:BYTE、WORD、DWORD、NEAR和FAR等。为了明确指令中存储单元的属性,可把指令“MOV[BX],1H”可改写成:MOV?byteptr[BX],1H?或MOV?wordptr[BX],1H在指令中用操作符PTR强制后,不管其后的地址表达式原数据类型是什么,在本指令中就以PTR前面的类型为准。该强制属性只在本指令有效,是一种临时性的属性,它不会改变原内存单元的定义属性。例如:W1DW1234H,5678HB1DB2DB5D1DD…MOVAX,wordptrb1;把B1开始的二个字节拼接成一个字,执行后,(AX)=0502HMOVBH,byteptrw1?;把字W1的低字节传送给BH,执行后,(BH)=34HMOVCH,b

文档评论(0)

177****7891 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档