程式設計首篇 1 了解程式

2021-07-05 04:59:46 字數 1324 閱讀 2227

程式是通過編寫**來實現的,就如同寫文章。         

可以認為程式就是資料,資料也是程式。什麼時候是程式,什麼時候是資料,要通過**中的設計來實現的。

**可以在編輯器中寫,存放也是從左到右,從上到下。儲存後叫源**。需要編譯。還可以在直譯器裡編寫,不需編譯。

編譯是把文字**轉換成二進位制**的過程。轉換後才能在電腦上執行。

寫**的第一步,了解程式模式  扁平模式是32位的主要模式,masm語法表示

.model flat, stdcall

就是所有儲存器程式資料作為乙個段。早期由於物理技術水平限制,分了4個段。名字為cs,ds,ss,es.

實現方法就是 cs,ds,ss,es都指向乙個位置。同時增加了兩個段暫存器fs,gs。

為了更清楚在什麼機器上執行,可以指明執行cpu型別,masm語法

.686p

這裡指明的只是一種。

寫**的第二步,了解程式入口和資料入口

程式和資料放在一起,如何區分和操作是通過暫存器來實現的。暫存器包括通用暫存器有八個

eax.ebx,ecx,edx,esi,edi,esp,ebp。標誌暫存器efr和指令位置暫存器eip。最主要的要記住這些約定:

eax為累加器,ecx為計數器,ebx,ebp為基址暫存器,esi,edi為變址暫存器,ebp還可以是基址指標,esp 為堆疊指標。

段暫存器cs+eip是程式入口,ds+通用暫存器任何就是資料入口。masm語法抽象為表示

.data

資料入口

.code

程式入口

寫**的第三步,了解程式終止。

程式需要有一些初始資料,如堆疊

.stack 4096

程式不是無休無止的,必須有乙個範圍,和停止標誌,需要一些初始資料設定。

main:

invoke exitprocess,0

end main

exitprocess,0 是winapi函式,還需在**中給編譯器指明

exitprocess proto,  :dword

並要放在前面。

這樣,就構成乙個簡單什麼都不做的masm程式。整理為:

.686p

.model flas,stdcall

.stack 4096

exitprocess proto,:dword

.data

.code

main:

invoke exitprocess,0

end main

c語言表現就更為簡單,如下面.模式都由系統自動完成了。

#include

void main(){



程式設計模型隨筆 1 概述篇

程式是問題求解過程的表達,表達求解過程的語言統稱為程式語言。求解過程就是邏輯,就是順序 條件 迴圈三種形式,因此程式就是用特定的語言表示的邏輯,程式是形式,邏輯是內容。模型是對事物共性的抽象,程式設計模型就是對程式設計的共性的抽象。什麼是程式設計的共性呢?最重要的共性就是 程式設計時,的抽象方式 組...

程式程式設計經驗總結(1)

近頃 総括報告 在近一段時間裡,我主要在進行 様 様 共進電機様開發,在這三個專案的開發過程中,有一些收穫,也產生了一些想法,希望可以和大家交流。我進入小組快 1個月了,從開始的練習模組到現在的正式專案,前後做了快10多個專案模組了,但是依然有bug出現!雖然大家都安慰我說 開始做都有bug的,不要...

c語言與程式設計筆記 指標篇 (1)

基本概念 1 運算元 稱為間接訪問表示式,它的操作語義是引用以運算元為位址的變數。運算元可以是表示式,但其值必須是位址值。所以間訪表示式的值是乙個左值,代表指標所指的變數。而指標所指的型別就是間訪表示式運算的型別。例 int y,x 3 pi x y pi 是先對pi進行 操作,然後計算px,即對p...