ucore lab1實驗報告

2021-09-20 18:28:50 字數 1945 閱讀 3303

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分,這個不作為最終實驗評分依據,如 貴州大學電腦科學與技術學院 電腦科學與技術系上機實驗...