我正在爲一個硬件分配編寫一個Linux引導程序,我知道我需要創建一個函數來讀寫內存中的一個字。我無法確定我是否在正確的軌道上,並且任何幫助都很大。我會測試這些功能,但目前對我來說是不可能的,因爲我需要在構建核心功能之前開展工作,然後才能將所有功能放在一起。我得到了get_byte(段偏移量)/ put_byte(焦炭,段偏移量)被證實由我的老師一起工作,從彙編語言編寫,並出口到C.C Linux從內存讀取/寫入字段(段,偏移量)
unsigned short get_word(unsigned short segment, unsigned short offset)
{
unsigned short word, low, hi;
low = get_byte(segment, offset);
high = get_byte(segment, offset+1);
word = low+hi;
return word;
}
我不知道,如果上面是正確。我知道嗨和低需要結合,可以添加,或者我應該只是做低&嗨,然後返回該結果?如果我完全脫離基地,請告訴我。偏移量無符號短還是int應該是正確的?
int put_word(unsigned short word, unsigned short segment, unsigned short offset)
{
unsigned short low, hi;
low = word | offset;
hi = word | offset+1
put_byte(segment, low);
put_byte(segment, hi);
return 0;
}
我不知道上面的代碼是否接近正確,但這是我最好的猜測。
任何人都知道解決方案或有任何提示?這些功能應該是非常基本的,但我被卡住了,需要開始我的任務的實際部分。
UPDATE(12:46):修正put_byte(),如下所述,只接受兩個參數是沒有意義的,修正了這個問題。我爲我的錯誤道歉。
男人我很想看看在Linux上工作的get_byte和put_byte。 – Joshua 2011-01-26 21:02:19