Win32匯編語言-概述課件_第1頁
Win32匯編語言-概述課件_第2頁
Win32匯編語言-概述課件_第3頁
Win32匯編語言-概述課件_第4頁
Win32匯編語言-概述課件_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

宋軍計算機學(xué)院信息安全系songjun@12023/10/11匯編語言程序設(shè)計教學(xué)安排2023/10/112課時48學(xué)時:課堂教學(xué)(32)+上機實踐(16)成績評定平時成績:40%考試成績:60%考試方式閉(開)卷筆試:選擇題、程序閱讀、程序設(shè)計3次作業(yè)+Project參考教材2023/10/113高級語言、匯編語言、機器語言匯編語言(低級語言)C語言(高級語言)機器指令(機器語言)2023/10/214課程說明2023/10/215匯編語言程序設(shè)計Assembly

Language

and

Programming掌握匯編語言及其程序設(shè)計方法,了解計算機軟硬件的若干底層細(xì)節(jié)和基本原理。為后續(xù)課程和工程應(yīng)用打下重要的專業(yè)基礎(chǔ)。加密解密,系統(tǒng)安全,逆向工程!預(yù)備知識2023/10/216Win32:Windows

32位匯編語言程序設(shè)計的原理、方法與技術(shù)CPU分層:DLL/MA/ISA層ISA-32CPU與IA-32IA-32是一類ISA-32IA-32是CISC下的ISA匯編語言程序設(shè)計最古老的程序設(shè)計語言深入理解計算機體系結(jié)構(gòu)和操作系統(tǒng)高級匯編語法,MASM,TASM接近MASM什么是匯編語言匯編語言是一種面向機器的低級程序設(shè)計語言匯編語言以助記符形式表示每一條計算機指令助記符:易記憶、描述指令功能和指令操作數(shù)匯編指令:用助記符表示的指令匯編語言:匯編格式指令、編寫規(guī)則匯編程序:稱匯編語言源程序(.ASM)2023/10/217編譯和調(diào)試環(huán)境編輯器、編譯器、鏈接器和調(diào)試器編輯器創(chuàng)建源文件,如文本或代碼編輯器編譯器把匯編源程序轉(zhuǎn)換為二進(jìn)制目標(biāo)文件

鏈接器是把編譯器創(chuàng)建的多個單獨的文件組合鏈接成可執(zhí)行文件調(diào)試器查看程序運行中寄存器和內(nèi)存狀態(tài)編輯器編譯器.ASM

.OBJ.EXE2023/10/218鏈接器調(diào)試器工作模式2023/10/21916位實地址模式與8086兼容的模式,僅低20位地址線起作用,能尋址第一個1MB的內(nèi)存空間,MS

DOS運行在實模式下32位保護(hù)模式工作于32位80x86

CPU,提供對程序和數(shù)據(jù)進(jìn)行安全檢查的保護(hù)機制,如Windows

9x/NT/2000等32位操作系統(tǒng)虛擬8086模式

在Windows

9x下,運行一個DOS應(yīng)用程序,該程序即運行在虛擬8086模式下什么是匯編語言機器指令助記符2023/10/2110匯編指令匯編語言ASM:Assembly

Language匯編語言與機器語言機器語言一種二進(jìn)制(十六進(jìn)制)語言,純粹的數(shù)字形式特定的處理器才能理解匯編語言使用助記符的語句匯編指令與機器指令一一對應(yīng)2023/10/2111匯編語言與高級語言高級語言與匯編語言及機器語言是一對多的關(guān)系

一條簡單的C語言會被擴展成多條匯編語言或機器語言指令moveax,

y;將y送至eax寄存器addeax,

4;eax寄存器加4movebx,

3;立即數(shù)送至ebx寄存器imulebx;eax與ebx相乘movx,

eax;將eax寄存器存放的結(jié)果送至xx

=

(

y

+

4

)*32023/10/2112匯編語言和高級語言(cont.)2023/10/2113匯編語言功能有限,涉及硬件細(xì)節(jié)↘匯編語言程序的通用性、可移植性較差↘編寫程序比較繁瑣,調(diào)試起來也比較困難高級語言功能強大,與具體計算機無關(guān)↗高級語言程序可在多種計算機上編譯后執(zhí)行↗類似自然語言的語法,易于掌握和應(yīng)用匯編語言:×高級語言:√匯編語言和高級語言(

cont.)匯編語言本質(zhì)上就是機器語言↗可以直接、有效地控制計算機硬件↗易于產(chǎn)生速度快、容量小的高效率目標(biāo)程序高級語言不針對具體計算機系統(tǒng)↘不易直接控制計算機的各種操作↘目標(biāo)程序比較龐大、運行速度較慢匯編語言:√高級語言:×2023/10/2114匯編語言和高級語言(

cont.)2023/10/2115匯編語言的優(yōu)點直接控制計算機硬件部件編寫在“時間”和“空間”兩方面最有效的程序匯編語言的缺點需要熟悉計算機硬件系統(tǒng)、考慮許多細(xì)節(jié)編寫繁瑣,調(diào)試、維護(hù)、交流和移植困難匯編語言:?高級語言:?匯編語言和高級語言(

cont.)2023/10/2116匯編語言的優(yōu)點使得它在程序設(shè)計中占有重要的位置,是不可被取代的匯編語言的缺點使得人們主要采用高級語言進(jìn)行程序開發(fā)工作有時需要采用高級語言和匯編語言混合編程的方法,互相取長補短,更好地解決實際問題混合編程取長補短混和編程—C內(nèi)聯(lián)匯編

asm{//關(guān)中斷climov

eax,

cr0and

eax,

~0x10000mov

cr0,

eax}*(

pBase

+

uIndex

)

=*((PULONG)pOutputBuffer);

asm{//開中斷mov

eax,

cr0or eax,

0x10000mov

cr0,

eaxsti}2023/10/2117匯編語言和高級語言2023/10/2118匯編語言的主要特點2023/10/2119與機器相關(guān)性匯編語言程序與處理器指令系統(tǒng)密切相關(guān)通用性和可移植性低執(zhí)行效率高程序員可直接、有效地控制系統(tǒng)硬件形成的可執(zhí)行文件運行速度快、占用內(nèi)存量少編寫程序的復(fù)雜性匯編指令單一、具體,源代碼編寫繁瑣程序調(diào)試?yán)щy匯編語言的應(yīng)用場合2023/10/2120適用的領(lǐng)域要有較快的執(zhí)行時間,或者占用較小的存儲空間與計算機硬件密切相關(guān),要直接有效地控制硬件大型軟件需要提高性能、優(yōu)化處理的部分沒有合適的高級語言、或只能采用匯編語言的時候不宜使用的領(lǐng)域大型軟件的整體開發(fā)沒有特殊要求的一般應(yīng)用系統(tǒng)的開發(fā)分析具體系統(tǒng)尤其是該系統(tǒng)的低層軟件、加密解密軟件、分析和防治計算機病毒等等幾個問題2023/10/2121本課程能學(xué)到什么?將了解到高級語言編譯器(例如c)是如何將源代碼語句翻譯成匯編語言和機器語言的。將了解到高級語言是如何在機器語言層次實現(xiàn)算術(shù)表達(dá)式、循環(huán)和邏輯結(jié)構(gòu)。將學(xué)習(xí)匯編語言代碼與c程序之間的接口。將編寫全新的匯編語言程序需要具備什么背景知識?一門大學(xué)計算機程序設(shè)計課程:C語言如何學(xué)習(xí)2023/10/2122目標(biāo):Win32匯編IA-32:8086、16位Windows

API控制臺程序,非界面方法:閱讀+實踐由簡到繁:一口吃不成胖子對照高級語言(C語言)熟讀唐詩三百首,不會寫詩也會吟。學(xué)習(xí)工具反匯編器

IDAPro開發(fā)平臺

MS

VisualStudio2023/10/2123虛擬機2023/10/2124L0語言與L1語言假設(shè):L0語是存粹的機器語言,L1語言是基于L0的更加人性化的語言解釋方式與翻譯方式

解釋方式:用L0語言的解釋程序?qū)1程序的每條指令解碼并執(zhí)行

翻譯方式:用L0程序?qū)⒄麄€L1源程序翻譯成L0程序,再執(zhí)行虛擬機VM1(L1)程序在虛擬機VM0(L0)執(zhí)行,例如Java虛擬機(JVM)虛擬機層次高級語言5th匯編語言4th操作系統(tǒng)3th指令集體系結(jié)構(gòu)

2nd微結(jié)構(gòu)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論