天天看點

彙編對學C語言的幫助(尚未完成)

首先先說明,在彙編中沒有定義變量,跟變量有相同作用的是cpu寄存器,一般寄存器我現在看到的都是跟位址打交道,運算寄存器部分在計算機組成原理部分,彙編沒講 然後說明,在c語言中變量名其實就是位址,一般在c語言我們是傳遞變量的值,但是在編譯器中我們變量名就是記憶體單元的别名 (1)尋址方式對資料類型的了解 彙編尋址方式(一): mov ax, [0] 是尋址的基礎方式 彙編尋址方式(二): mov ax, [bx]   彙編尋址方式(三): mov ax, [bx + idata] 可轉換為格式: [bx].idata <==> 結構體 idata[bx]  <==> 數組 彙編尋址方式(四): mov ax, [bx + si] 可轉換為格式: [bx][si]   <==> 二維數組 彙編尋址方式(五): mov ax, [bx + si + idata] 可轉換為格式: [bx].idata[si]  <==> 結構體中數組元素 舉例: struct Student {    float number;    char name[10];    char sex; }; struct Student stu = {99, "xiaoming", 'M'} 在記憶體中   (2)對棧的了解 彙編中有ss:sp,棧段寄存器,call和ref指令配合對函數調用的了解,push ax和pop ax的儲存寄存器内容   (3)變量含義 變量就是資料标号,代表着幾塊記憶體單元,在進階語言中是通過變量與記憶體通信   (4)代碼塊,作用域 { }中内容在c語言中是一個segment/ends,變量   (5)對函數調用的了解 函數調用三部曲:1)資料入棧:儲存實參、函數位址 2)開辟記憶體空間 3)jmp ip 調用結束三部曲:1)儲存結果 2)釋放記憶體空間 3)資料出棧:pop ax, pop ip 

轉載于:https://www.cnblogs.com/rz-jin/archive/2012/12/13/2816370.html