- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
4.3組合語言程式的結構2.Com程式的組合語言根源程式格式格式: NAME模組名(可有可無)段名 SEGMENT ASSUME段寄存器地址說明 ORG100HStart: JMPbegin 變數定義 數據空間預置begin: 指令1 指令2 指令n段名ENDS ENDstart4.1組合語言語句(4)HIGH和LOW操作符。格式:HIGT/LOW常數或地址運算式功能:兩個操作符都是針對一個16位的數或地址運算式的,其中,HIGH操作符取其高位位元組,LOW操作符取其低位位元組。例如:CONST EQU1234HMOV AH,HIGHCONSTMOV AL,LOWCONST4.1組合語言語句上述指令執行後,AH寄存器值為12H,AL寄存器的值為34H。以上分別討論了4大類運算符,當一個運算式中出現多種運算符時,應先計算優先順序別高的運算符,對優先順序相同的運算符則應從左到右進行計算。括弧內的運算式應先計算。運算符的優先順序別如表4.1所示。4.1組合語言語句優先級運算符
高低()、[]、LENGTH、SIZE、WIDTH和MASKPTR、OFFSET、SEG、TYPE、THIS、段運算元(:)HIGH、LOW*、/、MOD、SHL、SHR+、-EQ、NE、LT、LE、GT、GENOTANDOR、XORSHORT表4.1運算符的優先順序4.2偽指令4.2.1數據定義與符號定義偽指令1.數據定義偽指令格式:[變數名]數據定義偽指令運算元項表功能:定義以數據存儲區,其類型有所使用的數據定義偽指令指定。變數名(Variable)字段是可選項,它用符號地址表示,其作用與指令語句前的標號相同,但它的後面不跟冒號。如果語句中有變數則組合語言程式使其記以第一個位元組的偏移地址。4.2偽指令數據定義偽指令常用的有以下幾種:(1) DB偽指令定義位元組類型,其後的每個運算元都佔有一個位元組。(2) DW偽指令用來定義字類型,其後的每個運算元都占有一個字,即兩個位元組(低位位元組在第一個位元組地址中,高位位元組在第二個位元組地址中)。(3) DD偽指令用來定義雙字類型,其後的每個運算元占有兩個字。(4) DQ偽指令用來定義4字類型,其後的每個操作佔有4個字。(5) DT偽指令用來定義10位元組類型(5個字),其後的每個運算元佔有10個位元組,形成壓縮的BCD碼。4.2偽指令運算元字段可以是常數或運算式、字串、?和帶DUP的運算式。若是字串且是DB類型時,必須以單引號括起來,括起來的字元個數不能超過255個,字串以ASCII碼的形式按地址遞增的順序一次存放在以變數名開始的記憶體單元中;若是“?”時,表示偽變數預留記憶體單元。例如:X1DB?;為變數X1預留一個位元組單元若是帶DUP的運算式表示定義多個相同的運算元則要預留多個記憶體單元。4.2偽指令DUP的使用格式如下:運算式DUP(運算元項)運算式為要重複的次數;運算元表示要重複的內容,可以是常數或運算式、字串、?和帶DUP的運算式。例:A1DB10DUP(ABCD);表示從A1開始重複定義10個字串“ABCD”A2DW4DUP(3,5) ;表示從A2開始重複定義4個字,由低到高,依次為;3,5,3,5A3DB5DUP(3DUP(2),7) ;表示從A3開始重複定義5
文档评论(0)