Re: 什麼樣的程式可以不用透過OS執行?
※ 引述《CharArray ( char[] )》之銘言:
: 我表達的可能不好 不過我想問的大概是以下這件事 :
: 像這段C code
:
: int *a=0;
到此, 是 data section 宣告
假設使用的 cpu 是 8086 , 問題會是 data segment DS = ?
Interrupt vector table 所在的地方 0000:0000 - 0000:0400
(0x00000000- 0x00000400)
是歸 OS 保護的, 所以 OS Loader 不會直接替 user 蓋過這些地
方, 通常都得由程式自行搬過去.
: a++;
: *a=5;
這一段是 code section , linker 決定 code segment cs = xxxx
Turbo C 可以選 8086 cpu (v86 DOS prompt) 下的 small (cs=ds=ss=es)
或 large mode .
動用到 INT 1 的 single step trap 實例, 就是 debug 那隻程式.
:
: 可以compiles但執行時會出錯 應該是被os給memory protection檔了下來
: 有什麼樣的程式 可以更改記憶體 0x00000004位置的值 而不被os欄住?
:
: → ggg12345:在dos prompt下的V86 mode 可以動 INT n 140.115.4.12 09/21 23:46
: → ggg12345:不過要照會compiler與linker是8086 mode 140.115.4.12 09/21 23:48
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.115.4.12
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 7 之 11 篇):