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