導航:首頁 > 編程語言 > windows匯編程序設計

windows匯編程序設計

發布時間:2022-08-13 01:08:41

『壹』 匯編語言程序設計的一般步驟是什麼

匯編語言程序設計的基本步驟 了解了匯編語言指令的功能和用法,了解了匯編語言程序的編寫格式,就可以編制完整的匯編語言程序了。一個程序通常具有順序、分支、循環和子程序4種結構形式。順序程序結構就是指完全按順序逐條執行的指令序列。在程序設計過程中,順序結構大量存在,屢見不鮮。但一個完整的程序只是逐條去執行指令,這非常少見。常見的程序結構,是上述4種結構的混合體。一般來說,編制一個匯編語言程序的步驟如下:(1) 分析題意,確定演算法或演算法思想。演算法是指解決問題的方法和步驟。比如現有的一些計算方法和日常生活中解決問題的邏輯思維推理方法等。(2) 根據演算法畫出流程圖,簡單的情況也可不畫。畫出描述演算法的流程圖,可以首先從圖上檢驗演算法的正確性,減少出錯的可能,使得動手編寫程序時的思路更加清晰。(3) 分配存儲空間和工作單元,合理地使用寄存器。分配存儲空間和工作單元,是指存儲空間的分段和數據定義。另外,由於寄存器的數量有限,編寫程序時經常會感到寄存器不夠用。因此,對於位元組數據,要盡量使用8位寄存器。而採用適當的定址方式,也會達到節省寄存器的目的。(4) 根據流程圖編寫程序。這是編制匯編語言程序最為重要的一步。演算法里規定的功能,是要通過一條條指令描述出來的。為了提高編程能力,對於初學者,一是要多閱讀現有的程序,以學習別人的編程經驗;而更為重要的是,必須多親自動手編寫,不要怕失敗,只有通過無數次失敗,才能從中積累自己的編程經驗。(5) 上機調試運行程序。通過匯編的源程序,只能說明它裡面不存在語法錯誤。但是它是否能達到演算法所要求的預期效果,還必須經過上機調試,用一些實驗數據來測試,才能夠真正地得出結論。可以這么說,即使是一個非常有經驗的程序員,也沒有百分之百的把握說他編寫的程序一次就成功。 用流程圖表示演算法 流程圖用一些圖形框來代表各種操作。用圖形表示演算法,直觀形象,可以用來幫助人們對演算法的理解。下圖給出了一些常用的流程圖符號。

上圖中的判斷框(菱形)用來對一個給定的條件作出判斷,以決定如何執行其後的操作。它有一個入口,兩個出口,如下圖(a)所示。

連接點(圓圈)是用來將畫在不同地方的流程線連接起來。例如在下圖(b)里,有兩個圈裡寫著數字1的圓圈,它表示是從左邊的1出來,進到右邊圖的1里(這由流程線的方向給出)。可以看出,這兩個點其實就是同一個點,只是由於畫不下而分開來畫的。用連接點,可以避免流程圖中的流程線相互交叉或過長,從而使流程圖清晰。

注釋框不是流程圖中必需的部分。在流程圖中使用它,是為了對流程圖中的某些框的操作做一些必要的說明,以便使人們能夠更好地通過流程圖來理解演算法。

處理框反映做些什麼樣的操作,如把某個單元的內容送入某個寄存器,從某個存儲單元取出數據等。它是流程圖里最為本質的、出現最多的圖形框。

輸入/輸出框反映程序的輸入和輸出情況。計算機程序無外乎接收數據,進行處理,然後加以輸出,所以輸入/輸出框是必不可少的。

『貳』 請問既然學習了王爽的《匯編語言》為什麼還要學習《windows環境下32位匯編語言程序設計(第二版)》呢

王爽書中的匯編語言,是16位實模式下的匯編語言。
羅雲斌的書講的是工作在32位環境下保護模式的匯編。
時至今日,傳統的dos時代已經過去了。
很少應用程序還設計為工作在16位環境下。大部分都工作在32位環境下。
而16位和32位是兩碼事,16位中是調用各種中斷完成功能,
但在32位保護模式中,這是非法指令,只能調用windwos系統提供的api而不能直接調用中斷了。
32位環境的匯編的風格越來越接近c。
對於逆向而言,用16位的方法來反匯編32位,是不可行的。
同樣,把32位程序反匯編結果以16位的方法來解也是不可行的。
在windows32下的逆向是必須掌握win32匯編。熟悉各種win32api,熟悉pe結構,熟悉脫殼,熟悉各種演算法等等。
win32匯編只是學習逆向的基礎,只會匯編不可能在逆向的路上走多遠,還必須學習很多高級語言,和熟悉這些高級語言的反匯編形式和結構。
對於採用虛擬機的語言,則需要學習其虛擬機上運行的指令。
比如.net逆向,就必須掌握IL.
逆向很有趣,也很辛苦。希望lz堅持。

『叄』 匯編語言程序設計中使用哪種軟體工具

1、MASM。

微軟公司為x86微處理器家族開發的匯編開發環境,擁有可視化的開發界面,使開發人員不必再使用DOS環境進行匯編的開發,編譯速度快,支持80x86匯編以及Win32Asm,是Windows下開發匯編的利器。

2、NASM。

全稱The Netwide Assembler,是一款基於80x86和x86-64平台的匯編語言編譯程序,其設計初衷是為了實現編譯器程序跨平台和模塊化的特性。

3、TASM。

Borland公司開發的匯編編譯器,被廣泛用於Turbo C,Quick Basic等編譯器,用作中間過渡編譯。它也能獨立的編譯純匯編或是Win32Asm的代碼。具有編譯快速,高效的特點,至今依然是匯編開發的首選利器。

4、GAS。

GNU匯編器(GNU Assembler),簡稱為GAS,是由GNU計劃所使用的匯編器,GNU的核心精神是自由與分享,所以GAS亦是自由軟體。

5、RadASM。

一款著名的WIN32匯編編輯器,支持MASM、TASM等多種匯編編譯器,Windows界面,支持語法高亮,自帶一個資源編輯器和一個調試器。擁有較強的工程管理功能,加之眾多插件的支持,使得它用匯編語言編寫Windows軟體變得得心應手。

『肆』 簡單介紹一下匯編語言程序設計

匯編比較好的書有:王爽老師《匯編語言》,楊季文老師的《80X86匯編語言程序設計》。看匯編不看保護模式的程序設計的話,匯編也就白學了,所以保護模式非常重要。當然這也是匯編一些應用的基礎,比如軟體解密,驅動的編寫。有了好書,肯定會事半功倍的。這些書上也會肯定會有HELLO WORLD的實現。學習匯編首先從數制學起,各種數制的轉換肯定也是非常重要的基礎。然後學習基本的8086指令,程序設計的3種語句形式(順序,循環,選擇)接著是學習調用DOS的一些系統功能實現簡單的程序,最後進入了最重要的一部分保護模式的程序設計,開始學習80386指令等等,我就不詳說了,路漫漫其修遠兮。以上還只是停留在DOS時代,還沒有進入復雜的windows世界。現在的windows都是VISTA了。
匯編其實也不是這么神秘,不過是很多人習慣了高級語言的東西,再看匯編就很不習慣了,因為很多事情都得自己做。包括棧的平衡等。樓主既然一定想做,那麼就回答了2個問題,what,why。接下來就死haw了,編程的學習當時是要靠多上機練習。輕松匯編,這是一個大學生開發的匯編集成環境,初學的時候可以在上面用。學習編程,最重要的是調試,匯編代碼級的調試也是軟體解密的關鍵。所以學了匯編,比較高的境界就是看懂別人的程序,當然不是從源代碼,而是反匯編代碼。保護模式很重要,因為在windows下,自己肯定是弄不了保護模式了,我不知道能不能在cmd下面調用從實模式到保護模式的程序,沒試過,應該是不行吧。如果不行的話,可以裝個虛擬機,裡面安裝DOS,在windows裡面寫好程序後,做成ISO文件,再進入DOS,編譯執行保護模式程序,我是這么做的,不知道還有其他更簡便的方法沒有,你可以自己摸索下。以上是個人意見哈,供參考。

閱讀全文

與windows匯編程序設計相關的資料

熱點內容
做賬為什麼要用加密狗 瀏覽:583
考研群體怎麼解壓 瀏覽:156
linux修改命令提示符 瀏覽:224
圓圈裡面k圖標是什麼app 瀏覽:59
pdf加空白頁 瀏覽:945
linux伺服器如何看網卡狀態 瀏覽:316
解壓新奇特視頻 瀏覽:704
圖書信息管理系統java 瀏覽:552
各種直線命令詳解 瀏覽:862
程序員淚奔 瀏覽:147
素材怎麼上傳到伺服器 瀏覽:516
android百度離線地圖開發 瀏覽:189
web可視化編程軟體 瀏覽:293
java筆試編程題 瀏覽:746
win11什麼時候可以裝安卓 瀏覽:564
java不寫this 瀏覽:1001
雲點播電影網php源碼 瀏覽:97
pythonclass使用方法 瀏覽:226
移動加密軟體去哪下載 瀏覽:294
php彈出alert 瀏覽:209