程序各segment位址高低問題

2024-12-31 05:30:22 字數 2877 閱讀 5844

gcc下除錯c語言程式為什麼顯示「段錯誤」?

1樓:網友

在 c 程式中,經常會遇到段錯誤(segment error),這種問題出現的原因可能如下:

對乙個 null 指標解引用;

訪問程式程序以外的記憶體空間。

實際上,第乙個原因可以歸到第二個原因。在乙個 c 程式的虛擬記憶體空間中,從低位址到高位址依次是**區,堆區(向上增長),棧區(向下增長),最上是常量區。其中 null 指標的位置正好是虛擬記憶體中位址為 0 的位置,而這個位置是不屬於以上 4 個區域的,同理一些比較低的位址也不屬於這四個區,所以造成段錯誤的原因是訪問了程式虛擬記憶體空間 4 個區以外的位址。

在平時的開發中,最大的可能還是對 null 進行了解引用。

作業系統頁式儲存管理的問題

2樓:網友

邏輯頁面表示這是乙個虛擬的儲存空間,乙個邏輯頁面對應乙個實體記憶體的頁框,這個頁框才是真正的物理儲存所在。

在記憶體管理系統中為什麼讓連續分配方式訪問速度快,而

3樓:果兒可兒

連續分配儲存管理方式。

連續分配是指為乙個使用者程式分配連續的記憶體空間。連續分配有單一連續儲存管理和分割槽式儲管理兩種方式。

1、單一連續儲存管理在這種管理方式中,記憶體被分為兩個區域:系統區和使用者區。應用程式裝入到使用者區,可使用使用者區全部空間。

其特點是,最簡單,適用於單使用者、單任務的作業系統。cp/m和dos 2.0以下就是採用此種方式。

這種方式的最大優點就是易於管理。但也存在著一些問題和不足之處,例如對要求記憶體空間少的程式,造成記憶體浪費;程式全部裝入,使得很少使用的程式部分也佔用—定數量的記憶體。

2、分割槽式儲存管理為了支援多道程式系統和分時系統,支援多個程式併發執行,引入了分割槽式儲存管理。分割槽式儲存管理是把記憶體分為一些大小相等或不等的分割槽,作業系統佔用其中乙個分割槽,其餘的分割槽由應用程式使用,每個應用程式佔用乙個或幾個分割槽。分割槽式儲存管理雖然可以支援併發,但難以進行記憶體分割槽的共享。

記憶體作業系統(ram

os)是一種啟動後不依賴硬碟的作業系統,其啟動後會將所有檔案載入到記憶體執行,執行速度快,絕對不會中毒,還能更好保護系統的核心檔案不受破壞。

記憶體作業系統早在win98時代就已出現,由於硬碟速度的限制和記憶體條**的降低,記憶體作業系統現在已完全突破硬體的限制,在啟動後可以將硬碟斷電,完全不依賴硬碟執行。但目前其應用範圍還較窄,主要應用有學校教學機房等。

應用程式「default web site」中的伺服器錯誤

4樓:2019策馬橫槍嘯八荒

此錯誤表明檔案或目錄在伺服器上不存在。請建立檔案或目錄並重新嘗試請求。

只需要將bin資料夾從新命名,就可以正常訪問。

在系統盤 c:\windows\system32\inetsrv\config 下有乙個檔案,內包含這麼一段**:

將 刪除以後,重啟iis解決問題了。

不過因為。net裡面使用到bin資料夾,裡面涉及到一些安全問題,所以不得已只好恢復原來樣式,所以建議使用者在編寫**的時候不要包含類似系統常用的的或者軟體常用的資料夾作為你的**資料夾,經常造成不必要的麻煩。

warning l16:uncalled segment,ignored for overlay process segment:?pr?mian? c51程式出現的錯誤。。。

5樓:小鷹隼

main函式的『main』讓你寫成『mian』了。

6樓:匿名使用者

uncalled 就是你編的程式有一段沒用到。。你仔細檢查一下函式是否正確。

微控制器程式(51)解讀遇到難題:需要德高望重的人給予幫助:問題如圖,接納的賞金500財富值

7樓:網友

#define clock segment xbyte(0xbfff)

這裡的 xbyte();是個函式,要包函才能用。這個函式的作用是用來指定外部位址。

這一句的全部意思是 : 巨集定義clock segment的位址是外部實際位址0xbfff儲存器。這種巨集定義一般用來直接對映外部暫存器,從而使外總暫存器像內部暫存器一樣使用。

只是速度會慢一些。 這樣用只是因為8051不支援外部儲存器直接定址,當然你如果用指標,也一樣能實現上述功能。

display 結合上面變數命名方式,這個函式看起來是個led數碼管掃瞄函式。本意是,選擇第一位led,並行口輸出當前位的段碼,延時後再輸出下一位led的位選,並行口輸出下一位的段碼。

8樓:

樓主貌似沒有c語言基礎啊,難為你了,有空還是得看看書的。

這裡大致給你介紹一下:

#define a b 表示:將 a (助記符)定義為 b(實際的位址、埠等等,往往比較難記住),那麼以後在程式中可以直接使用a,而不用去記b。

display()是動態掃瞄程式,用clock_sel 輸出位選,用clock_segment 輸出段選。

9樓:q號

define是定義,display是動態掃瞄,用於數碼管顯示,有段選和位選。

彙編程式的問題

10樓:網友

在dw行之後,mov bx,0之前。

加入標號。start:

在end後添上標號,即改為end start就你原來的程式,你能告訴我從**開始執行嗎?(這就是錯誤根源),阿門。。。

編譯選項。ml /c

link16

11樓:id雞蛋炒韭菜

他好像不認你自己寫的abcd,非要換成code才行,你試試看。

怎麼跟蹤有機合成程序,TLC跟蹤反應程序是怎麼會事?

1 tlc。也就是點板。一般是點3個點,原料點,反應液點,和兩者的合點。2 hplc。一般也是做兩次,原料做一次,反應液體,在同一條件下作,看出峰時間。3 gc。跟hplc差不多。4 lcms。hplc和ms的連用,也就是液質聯用,一般只做一個就可以,因為可以用ms峰來判斷產物是否生成等。以上四種方...

電腦哪些程序可以結束,電腦哪些程序可以關閉

電腦程序哪些能關,那些不能關,有一個大致判斷方法,按ctrl alt del進入工作管理員,然後點選程序這一項,就能看到所有程序,然後點選 檢視 選單下的 選擇列 在選擇列視窗,勾選 使用者名稱 這一項,確定。再返回到工作管理員視窗,就能看到使用者名稱了,如果使用者名稱是 system 則是系統的程...

「程序」是什麼意思,程序是什麼意思啊

程序是指在系統中正在執行的一個應用程式 執行緒是系統分配處理器時間資源的基本單元,或者說程序之內獨立執行的一個單元。對於操 作系統而言,其排程單元是執行緒。一個程序至少包括一個執行緒,通常將該執行緒稱為主執行緒。一個程序從主執行緒的執行開始進而建立一個或多個附加執行緒,就是所謂基於多執行緒的多工。那...