Windows 汇编程序基础课件.pptVIP

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

3.4.3直接尋址指令中直接給出了運算元的地址例如:dVar是定義好的一個雙字型變MOVEAX,dVarMOVdVar,EBX執行指令“MOVEAX,dVar”時,CPU從指令中得知dVar的地址,再從地址取出一個雙字,送給EAX。3.4.4寄存器間接尋址運算元的地址放在寄存器中,CPU從寄存器中取得運算元的地址,例如:MOVESI,MOVEAX,[ESI]ESI外面加一對方括號,表示把ESI作為地址,從記憶體中取出一個雙字。

3.4.5寄存器相對尋址運算元的地址是寄存器和一個立即數相加後得到的結果舉例:MOVESI,0040200AHMOVEDI,[ESI+4]ESI加上4後得到的結果,作為一個運算元的地址。再從這個地址中取出一個雙字送給EDI。

3.4.6基址變址尋址運算元的地址是兩個寄存器相加後得到的結果,兩個寄存器分別稱為基址寄存器和變址寄存器。舉例:MOVESI,0040200AHMOVEBX,4MOVEDI,[EBX+ESI]3.4.6基址變址尋址(續)基址寄存器有兩個:BX和BP變址寄存器也有兩個:SI和DI基址變址寄存器只能是4種組合之一:[BX+SI],[BX+DI],[BP+SI]和[BP+DI]。3.4.7基址變址相對尋址運算元的地址是兩個寄存器以及一個立即數相加後得到的結果,即基址寄存器、變址寄存器和相對量。舉例:MOVESI,0040200AHMOVEBX,4MOVEDI,[EBX+ESI+4]3.4.8基址變址比例相對尋址運算元的地址是由基址寄存器、變址寄存器乘以一個比例數和相對量這3個部分相加得到的結果。比例數只能有1,2,4,8,這4種取值。舉例:MOVESI,0040200AHMOVEBX,4MOVEDI,[ESI+EBX*2+4]3.4.9尋址方式總結有效地址的計算方式EA的計算中包括基址、變址、比例、相對這4個部分。每個部分都可以從上面的可選項中任選其一。它可以轉換為以下幾種尋址方式:比例數取1時,就變成基址變址相對尋址方式。比例數取1且相對量不出現時,就變成基址變址尋址方式。變址寄存器不出現時,就變成寄存器相對尋址方式。變址寄存器和相對量不出現時,就變成寄存器間接方式。基址寄存器和變址寄存器不出現時,就變成直接方式。3.4.10段超越記憶體運算元的地址由兩個部分指定:段和有效地址。尋址方式中只確定有效地址段寄存器確定段地址沒有指定段寄存器且尋址方式使用了ESP和EBP寄存器,就使用SS段寄存器。其他情況,使用DS段寄存器。

例如,下麵指令中的記憶體運算元在SS段中:MOVEAX,[EBP+8]MOVEBX,[ESP-4]下麵指令中的記憶體運算元在DS段中:MOVEAX,[EBX+8]MOVEBX,[ESI-4]MOVEAX,[0040200AH]

3.5數據定義3.5.1常數的表示3.5.2簡單數據類型3.5.3DUP偽操作3.5.4數據定義的例子程式3.5.1常數的表示二進位數字後面跟b或B,八進制數字後面跟o或O;如33o十進位數字後面跟d或D,如27d十六進制數字後面跟h或H,如1BH數字後面不跟字母時,被當做十進位數可用.radix指定默認數值(一般不用)

3.5.2簡單數據類型3.5.2簡單數據類型(續)定義數據的語句為:[變數名]助記符運算式[,運算式…]舉例:bVarDB120wVarWORD 200,3003.5.3DUP偽操作為連續的存儲單元提供重複數據格式:NDUP(運算式)N為重複因數,只能取正整數DUP還可以嵌套常用來定義數組,例如:bArrayWORD50DUP(0)表示字型數組bArray,有50個元素,每個元素初值為0

3.5.4數據定義的例子程式說明數據變數的定義和使用方法的例子defvar.asm命令:ml/coffdefvar.asm/linksubsystem:console結果:在VC調試程式中查看數據區的內容如圖:Windows組合語言程式基礎3.1機

文档评论(0)

爱遛弯的张先生 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档