位匯編語言-表達(dá)式與操作符.ppt
《位匯編語言-表達(dá)式與操作符.ppt》由會員分享,可在線閱讀,更多相關(guān)《位匯編語言-表達(dá)式與操作符.ppt(19頁珍藏版)》請在裝配圖網(wǎng)上搜索。
2020 1 22 1 宋軍計算機(jī)學(xué)院信息安全系songjun 表達(dá)式與操作符 2 2020 1 22 主要內(nèi)容 匯編語言開發(fā)環(huán)境MASM32匯編語言程序結(jié)構(gòu)匯編語言的語句格式匯編語言程序格式MASM偽指令 3 2020 1 22 變量 類型 字節(jié)型 字與雙字 多字節(jié) 結(jié)構(gòu) 枚舉存儲 全局變量 局部變量 定義全局變量的時候類型才可以用縮寫 4 2020 1 22 全局變量 全局變量的作用域是整個程序 Win32匯編的全局變量定義在 data或 data 段內(nèi) 可以同時定義變量的類型和長度 格式是 變量名類型初始值1 初始值2 變量名類型重復(fù)數(shù)量dup 初始值1 初始值2 5 2020 1 22 全局變量的初始化 全局變量在定義中既可以指定初值 也可以只用問號預(yù)留空間在 data 段中 只能用問號預(yù)留空間 因為 data 不能指定初始值 實際運行的時候 未初始化的值是0 word Bufferdw100dup 1 2 一組字 以0001 0002 0001 0002 的 順序在內(nèi)存中重復(fù)100遍 一共是200個字 szBufferbyte1024dup 1024字節(jié)的緩沖區(qū) 在byte類型變量的定義中 用引號定義字符串和數(shù)值定義的方法混用szTextdb Hello world 0dh 0ah Helloagain 0dh 0ah 0 6 2020 1 22 局部變量 兩個以上子程序都要用到的數(shù)據(jù)才被定義為全局變量統(tǒng)一放在數(shù)據(jù)段中 僅在子程序內(nèi)部使用的變量則放在堆棧中在進(jìn)入子程序的時候 通過修改堆棧指針esp來預(yù)留出需要的空間 在用ret指令返回主程序之前 同樣通過恢復(fù)esp丟棄這些空間空間是臨時分配的 所以無法定義含有初始化值的變量 對局部變量的初始化一般在子程序中由指令完成 7 2020 1 22 局部變量的定義 local偽指令必須緊接在子程序定義的偽指令proc后 其他指令開始前Win32匯編默認(rèn)的類型是dword 如果定義dword類型的局部變量 則類型可以省略 當(dāng)定義數(shù)組的時候 可以 括號括起來 不能使用定義全局變量的dup偽指令 局部變量不能和已定義的全局變量同名 在不同的子程序中可以有同名的局部變量 局部變量的起始值是隨機(jī)的 是其他子程序執(zhí)行后在堆棧里留下的垃圾 local變量名1 重復(fù)數(shù)量 類型 變量名2 重復(fù)數(shù)量 類型 8 2020 1 22 數(shù)值表達(dá)式 數(shù)值表達(dá)式一般是指由運算符連接的各種常數(shù)所構(gòu)成的表達(dá)式匯編程序在匯編過程中計算表達(dá)式 最終得到一個數(shù)值程序運行之前 就已經(jīng)計算出了表達(dá)式 所以 程序運行速度沒有變慢 但增強程序的可讀性MASM對除偽指令外各種匯編時處理的指令統(tǒng)稱為操作符 Operator 9 2020 1 22 運算符 算術(shù)運算符 MOD移位運算符 SHLSHR邏輯運算符 ANDORNOTXOR關(guān)系運算符 EQNEGTLTGELE高低分離符 HIGHLOWHIGHWORDLOWWORD 10 2020 1 22 算術(shù)運算符 實現(xiàn)加 減 乘 除 取余的算術(shù)運movax 3 4 5 等價于movax 17MOD也稱為取模 它產(chǎn)生除法之后的余數(shù)19mod7 5加 和減 運算符還可以用于地址表達(dá)式除加 減外 其他運算符的參數(shù)應(yīng)是整數(shù) 11 2020 1 22 邏輯運算符 實現(xiàn)按位相與 相或 異或 求反的邏輯運算oral 03hAND45h 等價于oral 01h 47HAND0FH NOT56H計算結(jié)果分別為 7和0A9H 12 2020 1 22 移位運算符 實現(xiàn)對數(shù)值的左移 右移的邏輯操作 移入低位或高位的是0格式為 數(shù)值表達(dá)式SHL SHR移位次數(shù)moval 0101bSHL 2 2 等價于moval 01010000b 13 2020 1 22 關(guān)系運算符 用于比較和測試符號數(shù)值MASM用0FFFFH 補碼 1 表示條件為真 用0000H表示條件為假 movbx PORTLT5 AND20 OR PORTGE5 AND30 當(dāng)PORT 5時 匯編結(jié)果為movbx 20 否則 匯編結(jié)果為movbx 30 14 2020 1 22 高低分離符 取數(shù)值的高半部分或低半部分HIGH LOW從一個字?jǐn)?shù)值或符號常量中得到高 低字節(jié)movah HIGH8765h 等價于movah 87h從MASM6 0引入的HIGHWORD LOWWORD取一個符號常量 不能是其他常數(shù) 的高字或低字部分dd valueequ0ffff1234h 定義一個符號常量movax LOWWORDdd value 等價于movax 1234h 15 2020 1 22 其它操作符 類型屬性操作符 TYPE長度屬性操作符 LENGTH容量屬性 SIZE強制屬性操作符 PTR存儲單元別名操作符 THIS 16 2020 1 22 運算符與操作符的優(yōu)先級 LENGTHSIZEPTROFFSETSEGTPYETHISHIGELOW MODSHLSHR EQNEGTLTGELENOTANDORXOR 高低 17 2020 1 22 地址表達(dá)式 地址表達(dá)式是計算存儲單元地址的表達(dá)式 它可由標(biāo)號 變量名和由括號括起來的基址或變址寄存器組成 其計算結(jié)果表示一個存儲單元的地址 而不是該存儲單元的值 B1 B1 3 W1 1 moval B1moval B1 3movax W1 1 B1 3 18 2020 1 22 地址操作符 取得名字或標(biāo)號的段地址和偏移地址兩個屬性 將括起的表達(dá)式值作為存儲器地址 當(dāng)前偏移地址OFFSET名字 標(biāo)號返回名字或標(biāo)號的偏移地址 采用指定的段地址寄存器SEG名字 標(biāo)號返回名字或標(biāo)號的段基址 19 2020 1 22 386 modelflat stdcalloptioncasemap noneincludewindows incincludekernel32 incincludelibkernel32 lib dataB1BYTE01h 02hDB ABCD W1WORD1234h 5678h codestart moval B1moval B1 1 movax W1 1moveax offsetW1moveax invokeExitProcess NULLendstart text 00401000publicstart text 00401000startprocnear text 00401000moval byte 403000 text 00401005moval byte 403001 text 0040100Amovax word 403007 text 00401010moveax offsetunk 403006 text 00401015 text 00401015loc 401015 text 00401015moveax offsetloc 401015 text 0040101Apush0 uExitCode text 0040101CcallExitProcess text 0040101Cstartendp data 00403000byte 403000db1 data 00403001byte 403001db2 data 00403002db41h A data 00403003db42h B data 00403004db43h C data 00403005db44h D data 00403006unk 403006db34h data 00403007word 403007dw7812h data 00403009db56h- 1.請仔細(xì)閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標(biāo),表示該PPT已包含配套word講稿。雙擊word圖標(biāo)可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 匯編語言 表達(dá)式 操作
鏈接地址:http://www.3dchina-expo.com/p-5183700.html