彙編隨筆1

2022-09-11 20:27:13 字數 1762 閱讀 7075

/*碎碎念

筆記:磁碟->記憶體->cp

1b=8bit 1kb=1024b 1mb=1024kb 1gb=1024mb 1tb=1024gb

在記憶體或磁碟上,指令和資料沒有任何區別,都是二進位制資訊。

8086有16根資料線和20根位址線,它既能處理16位資料,也能處理8位資料。可定址的記憶體空間為1mb。

cpu是由運算器、控制器和暫存器組成的,這些器件靠內部匯流排(匯流排分為內部匯流排和外部匯流排,外部匯流排是連線cpu和主機板上的器件,主要分為資料匯流排(寬度決定cpu和外界的資料傳送速度,n根資料匯流排一次可以傳送乙個n位的二進位制資料)

控制匯流排(寬度決定cpu對外部的控制能力)

位址匯流排(『有n根位址線』則位址匯流排寬度為n,最多可以尋找2的n次方個記憶體單元))相連線。

通用暫存器:ax、bx、cx、dx,可分為兩個可獨立使用的8位暫存器來用(eg:ax分成al和ah,運算結果溢位時候,溢位的數字不會存放在ah中。)

彙編指令不區分大小寫。 

兩條指令:mov ax,bx    add ax,bx

cs             ip

8086中,任意時刻,cpu將cs:ip的指向內容當作指令執行;

debug命令:

r《回車》顯示暫存器的值r ax《回車》檢視ax的值可修改

d 位址範圍顯示指定範圍內儲存單元的內容d 位址從指定位址開始顯示128 位元組   d從當前開始顯示128個位元組

e 位址從指定偏移位址開始修改(連續修改)儲存單元內容e位址 資料(空格隔開)從指定位址開始用給定資料修改儲存單元

a從指定位址開始輸入符號指令

g=位址1 位址2執行位址1到位址2 之間的程式g=偏移位址從指定位址開始執行,直到結束或者遇到intg 偏移位址從當前執行到指定偏移位址之前的指令g從cs:ip開始執行直到結束或遇到int

t=偏移位址或p=偏移位址(遇到int時必用)從cs:ip開始單步執行

u 位址範圍將制定記憶體位址單元的內容反彙編成機器指令u 位址從指定位址開始反彙編連續32位元組   u從當前偏移位址開始連續32位元組

在匯程式設計序中,資料不能以字母開頭,要在前面加上零;eg:0a00h

資料段

段位址->ds

/*mov bx,1000h

mov ds,bx

mov al,[0] */

8086自動取ds中的資料為記憶體單元的段位址,不支援將資料直接送入段暫存器,於是用乙個暫存器進行中轉;【…】表示乙個記憶體單元,裡面的數字表示記憶體單元的偏移位址

棧段

段位址->ss,棧頂偏移->sp

任意時刻,ss:sp指向棧頂元素

設10000h-1000fh為棧段,ss->1000h,sp->0010h

push ax ;將ax中的資料入棧 ,sp=sp-2

pop ax   ;從棧頂取出資料送入ax,sp=sp+2

彙編(1)初識彙編

7.記憶體位址空間 8.主機板 9.介面卡 10.各類儲存器晶元 組合語言是直接在硬體之上工作的程式語言,首先要了解硬體系統的結構,才能有效的應用組合語言對其程式設計 計算機能讀懂的只有機器指令,什麼是機器指令?例1 指令 01010000 push ax 例2 s 768 12288 1280 機...

《巨變》隨筆(1)

湯森 飢餓可以馴服最兇猛的野獸,它會把禮節和謙恭 恭順與服從教導給最頑固的人。問題的複雜遠不止表面所能看到的那樣。接觸之後,思考的方式在一次用一次的重新整理。顯然,先考慮倫理,然後上來先對著貌似是強者的一方罵個酣暢淋漓不可能是個最好的選擇。到如今,我才能理解去年時候面試的那個問題到底應該怎麼回答。當...

學習隨筆 1

大學四年很快就要過去了,這個學期我要做畢業設計,題目是基於twincat的機械人運動控制系統的設計。說實話,我校的機械設計製造及其自動化專業雖然在國內名列前茅,但對於本科階段的教育過於注重設計與製造,而對於其自動化的部分則有明顯輕視 也可能是因為我們沒有立足自動化的課程設計吧,反正各種課設使我具備了...