作者ggg12345 (ggg)
站内Programming
标题Re: 什麽样的程式可以不用透过OS执行?
时间Mon Sep 22 07:23:45 2008
※ 引述《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