汇编语言程序结构课件.pptVIP

汇编语言程序结构课件.ppt

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

第一章基礎知識LABEL偽操作:除了用屬性操作符給以定義外,還可以用LABEL偽操作來定義,其格式為:nameLABELtype(1)對於資料項目可以表示為:variable_nameLABELtype其中,type可以是BYTE,WORD或DWORD(雙字)。(2)對於可執行的代碼,則可表示為label_nameLABELtype其中,type可以是NEAR或FAR。第一章基礎知識例如4.9BYTE_ARRAYLABELBYTEWORD_ARRAYDW50DUP(?)這樣在100個位元組數組中的第一個位元組的地址賦於二個不同類型的變數名:位元組類型的變數BYTE_ARRAY和字類型變數WORD_ARRAY。指令MOVWORD_ARRAY十2.,0把該數組的第3個和第4個位元組置0,而MOVBYTE_ARRAY十2.,0則把該數組的第3個位元組置0。例:LABFLABELFARLAB:MOVAX,100第一章基礎知識二、運算式賦值偽操作EQU有時程式中多次出現同一個運算式.為方便起見可以用賦值偽操作給運算式賦予一個名字,其格式如下:此後,程式中凡需要用到該運算式之處就可以用運算式名來代替了。上式中的運算式可以是任何有效的運算元格式,可以是任何可以求出常數值的運算式,也可以是任何有效的助記符。舉例如下:第一章基礎知識必須注意EQU語句的運算式中如果有變數或標號的運算式,則在該語句前應該先給出它們的定義。例如,語句:則必須放在DATA_ONE的定義之後才行,否則組合語言程式將指示出錯。另外還有一個與EQU相類似的=偽操作也可以作為賦值偽操作使用。它們之間的區別是:EQU偽操作中的運算式名是不允許重複定義的,而=偽操作則允許重複定義。例如:EMP=6或EMPEQU6都可以使數6賦以符號名EMP,但是不允許兩者同時使用。第一個語句後的指令中EMP值為7;而第二個語句後的指令中EMP值為8。第一章基礎知識三、段定義偽操作記憶體的物理地址是由段地址和偏移地址組合而成的,組合語言程式在把根源程式轉換為目標程式時,必須確定標號和變數的偏移地址,並且需要把有關資訊通過目標模組傳送給連接程序,以便連接程式把不同的段和模組連接在一起形成一個可執行程式。為此,需要用段定義偽操作,段定義偽操作的格式如下:此外,還要明確段和段寄存器的關係,這可用ASSUME偽操作來實現,其格式為:其中assignment說明分配情況,其格式為:其中段寄存器名必須是CS、DS、ES和SS中的一個,而段名則必須是由segment定義的段中的段名。而ASSUMENOTHING則可取消前面由ASSUME所指定的段寄存器。第一章基礎知識例如:由於assume偽操作只是指定某個段分配給那一個段寄存器,它並不能把段地址裝入段寄存器中,所以在代碼段中。還必須把段地址裝入相應的段寄存器中。為此,在上例的程式中,分別用兩條MOV指令完成這一操作。如果程式中有堆疊段,也需要把段地址裝入SS中。但是,代碼段不需要這樣做,代碼段的這一操作在程式初始化時完成。功能:通知MASM用指定的段寄存器來尋址對應的邏輯段,即建立段寄存器與段的缺省關係在明確了程式中各段與段寄存器之間的關係後,組合語言程式會根據數據所在的邏輯段,在需要時自動插入段超越首碼。這是ASSUME偽指令的主要功能ASSUME偽指令並不為段寄存器設定初值,連接程式LINK將正確設置CS:IP和SS:SP由於數據段通常都需要,所以在樣板根源程式中,首先為DS賦值;如果使用附加段,還要賦值ES段寄存器的裝入DS和ES的裝入通過寄存器傳送如:MOVAX,DATA1MOVDS,AXMOVAX,DATA2MOVES,AXSS的裝入(1)自動裝入採用定義段時指定組合類型STACK參數,在ASSUME語句中建立SS的關係,這樣就可以自動裝入SS。SS段寄存器的裝入stack1 segmentparastack dw40h

文档评论(0)

子不语 + 关注
官方认证
服务提供商

平安喜乐网络服务,专业制作各类课件,总结,范文等文档,在能力范围内尽量做到有求必应,感谢

认证主体菏泽喜乐网络科技有限公司
IP属地未知
统一社会信用代码/组织机构代码
91371726MA7HJ4DL48

1亿VIP精品文档

相关文档