ph = (struct proghdr *)((uintptr_t)elfhdr + elfhdr->e_phoff);
eph = ph + elfhdr->e_phnum;
注:ph表示elf段表首位址;eph表示elf段表末位址
for (; ph < eph; ph ++)
注:迴圈讀每個段
// call the entry point from the elf header
// note: does not return
((void (*)(void))(elfhdr->e_entry & 0xffffff))();
bad出現問題時的處理
outw(0x8a00, 0x8a00);
outw(0x8a00, 0x8e00);
/* do nothing */
while (1);
}2、讀取硬碟分割槽
static void
waitdisk(void)
static void
readsect(void *dst, uint32_t secno)
任務6:完成函式print_stackframe的實現,觀察輸出,並解釋最後一行各個數值的含義。在彙編中如何呼叫c語言中的函式,需要做哪些準備工作?
補充源**如下:
void
print_stackframe(void)
}分析最後一行為:
ebp: 0x00007bf8 eip:0x00007d62 args:
0xc031fcfa 0xc08ed88e 0xfa7502a8 0x00100a3c : -- 0x00007d62 --
顯示的資訊是「檔名:行數:函式名稱:函式入口偏移量」
組合語言在呼叫c函式的時候,先將引數按照倒序壓到棧裡,然後壓入返回位址,即call語句的下一條指令的位址,然後將ebp的值壓入棧中,之後將esp的值賦給ebp,然後再調整eip的值為函式入口位址。
任務7:
1、中斷向量表中乙個表項占用多少位元組,其中哪幾位代表中斷處理**的入口?
如中斷向量表中乙個表項struct gatedesc {}:將bit位相加共64bit為8位元組;其第31-16位是段選擇子,第63-48位和第15-0位分別是偏移量的高16位和低16位。通過段選擇子和段偏移量,就可以找到中斷處理**入口。
2、完成初始化函式idt_init;
檢視mmu.h中的setgate巨集:#define setgate(gate, istrap, sel, off, dpl) 主要使用這個巨集進行段選擇符的構造
gate:為相應的idt陣列內容
istrap:系統段設定為1,中斷門設定為0
sel:段選擇子
off:為__vectors陣列內容
dpl:設定優先順序
使用__vector陣列時,c程式檔案中引用之前,extern宣告一下
extern long __vectors;
/* lab1 your code */
//初始化中斷向量表進行操作
int i = 0;
for(i = 0;i <= 255; i++)
設定idt表的操作
setgate(idt[i],0,kernel_cs,__vectors[i],3);
} setgate(idt[t_syscall],1,kernel_cs,__vectors[t_syscall],0);
lidt(&idt_pd裝載idt表
}3、完成中斷處理函式trap();
設定時鐘進行操作:
case irq_offset + irq_timer:
if(ticks == tick_num) //進行時鐘進行分析;巨集定義tick_num為100
else
break;
函式主要實現呼叫時間中斷處理,列印100ticks;但是在鍵入鍵盤中斷後會出現kbd [000]字樣。
實驗1實驗報告樣本
西華大學實驗報告 開課學院及實驗室 機械學院專業實驗中心實驗時間 年月日 1 實驗目的 1.學習使用matlab,學會用matlab提供的函式對訊號進行頻譜分析 2.加深了解傅利葉變換的基本思想和物理意義 3.觀察和分析由多個頻率 幅值和相位成一定關係的正弦波疊加的合成波形 4.掌握取樣定理 5.理...
C實驗報告1
高階語言程式設計 學期 2014 2015學年第一學期 班級學號 姓名實驗1上機環境的熟悉 1 熟悉c語言程式設計環境visual c 6.0,掌握執行乙個c語言程式的基本步驟,包括編輯 編譯 連線和執行。2 了解c程式的基本框架,通過執行和編寫簡單的c語言程式。3 理解程式除錯的思想,能找出並改正...
2019實驗報告 1
實驗報告模板填寫說明 1 出現的紅色部分請填寫,並將紅色文字刪除2 演算法描述是以老師建議的演算法簡要描述的,如果和你的實現方案或者細節不一致的,請自行修改描述。3 在實驗結果中貼上真實測試結果截圖,不必是100分,這個不作為最終實驗評分依據,如 貴州大學電腦科學與技術學院 電腦科學與技術系上機實驗...