16位彙編第一講簡介

2022-03-20 21:02:21 字數 3375 閱讀 4833

組合語言他是計算機語言,計算機語言通俗點說就是人類和計算機(也就是cpu)溝通的橋梁,計算機不認識人類的語言,只認得二進位制(0和1)但是我們想讓你算計完成我們的工作,每次都是0,和1,那樣會崩潰的,(老一輩的是這樣的)所以後面組合語言出現了,用一些簡單的助記符來替代機器語言(二進位制)通用的語言,比如 + - * / 這種助記符,

add....組合語言是和機器語言一一對應的.

1.學好彙編了,你可以理解計算機更為透徹

2.學好彙編,可以增加自己的除錯能力

3.學好彙編,你可以反彙編,做一些反病毒,等等一系列的工作.

機器語言 ->組合語言 -> c語言 -> c++語言等等

組合語言主要操作的是暫存器

在cpu中,有八個通用暫存器

ax (add,代表相加,累加的意思)累加暫存器

bx (base,代表基位址,存放位址的暫存器) 基址暫存器

cx (count,個數,代表統計的意思)計數暫存器

dx (data,資料) 資料暫存器

si (source) 源暫存器,存放源位址的內容的暫存器

di (dest) 目標暫存器,從源暫存器中memcpy到目標暫存器中

bp (base point) 堆疊,理解為棧底指標,每次在棧中移動資料,出棧進棧,都會更新.記錄的是當前的棧底

sp () 堆疊棧頂指標.

指令暫存器,以及四個段暫存器

指令暫存器,標誌暫存器,以及四個段暫存器.

ip ,和段暫存器cs一起使用,記錄的是偏移(至於怎麼使用,會在下一講講清楚) 指明了cpu要執行的那條指令

ip是和cs一起使用,用來確定銷一條指令的實體地址

flag 標誌暫存器, 存放各種標誌的.

我們編寫匯程式設計序,一般用debug

使用方法,

1. win + r 開啟執行視窗輸入cmd,在cmd中輸入debug命令

2. 直接開始選單中 選擇右邊的執行視窗,輸入cmd,然後在cmd輸入debug命令

a 彙編,代表我們可以開始彙編了. (把彙編**轉換為機器碼)

u 反彙編,(把機器**變為彙編**)

t 單步不如(在vc++6.0中,相當於f11鍵)

r 暫存器 (相當於vc++6.0中的f10鍵,)可以修改暫存器的內容,比如 r cx 然後回車,輸入值,然後輸入p往下執行即可檢視.

g 斷點執行(也就是vc中的f5執行)

d 部分資料顯示 (可以顯示一段記憶體中的資料)

n 檔名 (本地建立乙個檔案, 例如n hello ,不用加雙引號包裹)

e 指定位址寫入,可以指定位址寫入一段資料

w 把彙編**寫入到檔案(檔案是由n指令建立的)

二丶使用debug截圖分享

1.執行cmd,輸入debug命令

2.輸入a,開始彙編

mov ax,1 的意思是把 1賦值給ax

ret 的指令就是(return 返回的意思)你寫的匯程式設計序也要返回否則就出錯

3.輸入p指令除錯檢視一下

4.利用r指令,修改暫存器的值,寫入到檔案,注意寫入到檔案必須寫入位元組大小,位元組大大小就是cx暫存器中儲存(cx 計數暫存器)

5.檢視是否更改,p指令檢視

6.n指令,在本地目錄建立乙個檔案

7.w指令,將我們的**寫入到檔案

8.利用winhex檢視本地檔案

其中b8 代表指令mov

01 00 代表16位暫存器ax裡面的值

c3 代表ret返回

9.將檔案,反彙編為彙編**,當做debug的引數

指令字典的看法

1.主頁面

2.點選組合語言,選擇8086

3.選擇下面的功能號

上面說了,ah是高把位,我們要顯示字串,需要給這個ah賦值為09 (具體系統呼叫(也就是api呼叫顯示hello下一講詳細講解))

然後dx暫存器我們需要給定乙個字串, (e 指令指定位址 e 108 "hello$" 即可)

呼叫的時候,用int 21 指令呼叫(內部會查表,具體怎麼樣,下一講細講)

4.使用debug顯示乙個helloworld

第乙個指令  -e 140 mov "helloworld$" 代表我們給140位址寫入乙個字串, 可以用d指令檢視  d 140 回車就會顯示

第二個指令 a,表示我們開始彙編

按照上面的指令字典,我們知道,dx暫存器需要是字串的首位址, 所以利用mov 指令,把140給dx了

然後因為呼叫函式(也就是系統呼叫) ah 我們需要給9,代表呼叫那一項

然後int 21 代表系統呼叫的意思,也就是說(呼叫函式,開始呼叫函式)

然後顯示了

第一講 RTOS 背景知識簡介

1.前後臺系統 早期嵌入式沒有作業系統概念,直接操作裸機。如51微控制器 簡單的小系統通常是前後臺系統。程式包括乙個死迴圈和若干個中斷服務程式。前台是中斷級,後台是任務級。2.rtos系統 real time os,實時作業系統。區分於前後臺 實時性 可以把要實現的功能劃分為多個任務,每個任務負責實...

第一講 遞迴

遞迴 recursion 程式呼叫自身的程式設計技巧。遞迴滿足2個條件 1 有反覆執行的過程 呼叫自身 2 有跳出反覆執行過程的條件 遞迴出口 一 階乘 include using namespace std int recursive int i int main main 三 斐波那契數 inc...

矩陣第一講

特殊矩陣1.零矩陣 所有矩陣的所有元素全都為0 2.對角矩陣 乙個n階方陣除對角線上的所有元素都為0 2.數量矩陣 對角矩陣中對角線上元素為常數,3.單位矩陣 數量矩陣中對角線上上常數為1.4.行階梯矩陣 乙個矩陣的每個非零行 元素不全為零 的非零首元 第乙個非零元素 所在列的下標隨著行標的增大,並...