亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? loadall.txt

?? 80386單片機
?? TXT
字號:
From: Mark Dixon
Subj: LOADALL
________________________________________________________________________

 >    I know from past threads that LOADALL is an intruction available
 > on 80x86 CPU's with a protected mode that is undocumented by  INTEL  
 > but  was  used by Microsoft in their VDISK  program,  amoung  other  
 > places.   I have rather  fragmentary  information  suggesting  that 
 > there is "another"  LOADALL instruction  on 80386+  chips,  perhaps 
 > only a BIOS emulation (?)  of the 286's LAOADALL.

Apparently, so my doc's tell me, the actual instruction is only  present 
on 286 processors, but that 386+ processors have similar functions  that 
allow  it to achive the same thing. So it's just a matter  of  detecting 
286/386 and using the appropriate routine....

Anyway, here's a few extracts from my doc's on loadall ;

Some uses for the Loadall instruction (just to get your mind going) :
- getting  at  all  the memory in your machine at will, even  if  it  is
  addressed above 1 megabyte, from real mode.
- executing real-mode programs in ram above one megabyte.
- installing a second operating-system-like program, or command  proces-
  sor, or shell, in memory above 1 megabyte, and alternating between that
  and DOS.
- installing most of the guts of custom TSR's, shells, and  device-driv-
  ers in ram above 1 megabyte (freeing up precious base memory), leaving 
  in low memory only the stubs to call the code upstairs.
- writing  very  large programs, which are "split", and  have  half  the
  program  residing  in  the  low-down  640K, and the other half  up  in
  extended memory, and running in either real or protected mode.
- installing  large  protected-mode programs in extended  memory,  where
  they will not conflict with, or crowd out DOS, and ping-ponging between
  them and DOS.
- switching to protected mode.
- emulating  real mode from protected mode (tough, and full of  gotchas,
  but still worth mentioning).
- this is really off-the-wall, but possible: building automata that  use
  Loadall  to  warp from state to state, sort of like a computer game of
  Life, played in the twilight zone.


                                   LOADALL

Okay, so what IS the Loadall instruction?
Simple:

*** 0F 05 hex ***

   So  how does it work?  Well, I've already told you the  gist  of it:
all CPU  registers  are loaded from a 51-word table of data that  starts  
at  80:0h (absolute  24-bit  address 800h).  This address is  one  thing  
that  cannot be changed or re-programmed. It's hard-wired into the chip, 
and  that's  that.   And that's unfortunate,  because  all  versions  of 
anybody's DOS earlier than version 3.3 use that area for critical system 
code.

   Loadall  takes no operands, and is just a two-byte  instruction.  All 
the "operands" for the instruction are obtained from the table at 80:0h.          
Just  put "db 0Fh, 05" in your code stream, and watch the fun.  But  you 
had better get that table right before you do, or else... (crash).

                ** THE LOAD TABLE **
-----------------------------------------------------------
Address         Size            CPU register
                (words)
-----------------------------------------------------------

800             3       unused  (?? I don't believe it.)
806             1       MSW (Machine Status Word)
808             7       unused  (?? I don't believe it.)
816             1       TR (Task Register)
818             1       Flag Word
81A             1       IP (Instruction Pointer)
81C             1       LDT (Local Descriptor Table)

81E             1       DS (Data Segment, or DS Selector)
820             1       SS (Stack Segment, or SS Selector)
822             1       CS (Code Segment, or CS Selector)
824             1       ES (Extra Segment, or CS Selector)

826             1       DI (Destination Index)
828             1       SI (Source Index)
82A             1       BP (Base Pointer)
82C             1       SP (Stack Pointer)

82E             1       BX (Data Register BX)
830             1       DX (Data Register BX)
832             1       CX (Data Register BX)
834             1       AX (Data Register BX)

836             3       ES Descriptor Cache
83C             3       CS Descriptor Cache
842             3       SS Descriptor Cache
848             3       DS Descriptor Cache

84E             3       GDTR
                        (Global-Descriptor-Table Register)

854             3       LDTDC
                        (Local-Descriptor-Table Descriptor Cache)

85A             3       IDTR
                        (Interrupt-Descriptor-Table Register)

860             3       TSSDC
                        (Task-State-Segment Descriptor Cache)

total =         33h words == 102. bytes


                  AND A PRETTY-TOGETHER DEFAULT TABLE

   So  here's  what  a  default  Loadall  table  looks  like.  Note that 
"new_Reg_Buf"  doesn't label any data item that we really use; it's  the 
name of the whole table.

;    LOADALL Register Load Table for new values to be loaded
;    into registers by a Loadall.

new_Reg_Buf     dw      3 dup (0)       ; unused space
newMSW          dw      0
newDead         dw      7 dup (0)       ; unused space
newTR           dw      0
newFlagWord     dw      0
newIP           dw      offset after_ldall      ; * may chng
newLDT          dw      0

newDS           dw      0       ; *chng
newSS           dw      0       ; *chng
newCS           dw      0       ; *chng
newES           dw      0       ; *chng

newDI           dw      0
newSI           dw      0
newBP           dw      0
newSP           dw      0       ; *chng

newBX           dw      0
newDX           dw      0
newCX           dw      0
newAX           dw      0

newESDC         dw      0,      9300h,  0FFFFh  ; *chng
newCSDC         dw      0,      9300h,  0FFFFh  ; *chng
newSSDC         dw      0,      9300h,  0FFFFh  ; *chng
newDSDC         dw      0,      9300h,  0FFFFh  ; *chng

newGDTR         dw      D8A0h,  0FF00h, 88h     ; @ 0D8A:0 *n
newLDTDC        dw      0,      0FF0Eh, 88h     ; @ E000:0
newIDTR         dw      0,      0FF00h, 0FFFFh  ; @ 0000:0 *n
newTSSDC        dw      4000h,  0FF0Eh, 800h    ; @ E400:0


   Those  "*chng" comments mean that those items MUST be changed  by the 
running  program before actually doing the Loadall. We cannot  correctly 
default  them  in  the sources because the correct values  can  only  be 
determined at runtime.

   The "*n" means that those values are not really in the default tables 
in the sources: the running program uses the sgdt and sidt  instructions 
to  get those values and then plugs them into those two  entries.   Just 
letting you see what they will look like. You could have anything in the 
original table there, because  the running program will over-write those 
items with  correct values anyway.

   The "@ 0D8A:0" comments are just noting the addresses in those items, 
in a more readable form.


                       THE PROCEDURE FOR USING LOADALL
                       (the ultra-safe, long procedure)

1. Save  the  original machine state, so you have a state to  return to.  
This  information  can be saved in a Loadall table, which  is  the  most 
convenient form for later use.

2. Disable interrupts.  Just in case.  We want a clean copy of area 80.

3. Save  the 102-byte (33h words) block of data located at  80:0h.  Ver- 
sions   of  DOS (both PC- and MS-) earlier than 3.3 use this  area   for 
critical system code, and as of DOS 3.3, RamDrive.Sys, and Himem.Sys use 
this area for their own Loadall tables.

4. Re-enable  interrupts.   Let the clock ticks,  or  whatever, through, 
while we do the following step.

5. Set  up  the new Loadall table (new_reg_buf), which  defines  the new
state we want to warp to.

6. Disable Interrupts.

7. Copy the new Loadall table to 80:0h.

8. Execute a Loadall.

9. Do  something  or other with your new machine state.   Read  or write 
extended memory, run code upstairs, or whatever.

10.  Copy the "old" Loadall table, containing the saved  machine  state, 
down to 80:0.

11.  Do   another  Loadall (Un-Loadall.)   This  restores  the  original 
machine state.

12. Copy the block of saved data back to 80:0h.

13. Re-enable interrupts.

Well, I hope that helps a bit. This is just a small bit out of some  45k 
doc  file I have on the subject. If you were really interested  (though, 
this  is  most of the important stuff here) I could netmail  it  bit  by 
bit...

  Mark.

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久婷婷成人综合色| 欧美一区二区成人| 国产不卡视频一区| 国产一区999| 国内外成人在线| 韩国中文字幕2020精品| 久久精品国产免费看久久精品| 性做久久久久久| 免费看黄色91| 国产资源在线一区| 丁香婷婷综合激情五月色| 国产成人精品综合在线观看 | 久久精品人人做人人爽97| 欧美成人一区二区三区片免费| 精品国产一区二区亚洲人成毛片| 日韩欧美一区在线| 国产日产欧美精品一区二区三区| 国产精品高潮呻吟| 亚洲一区二区三区四区在线观看 | 欧美日本在线观看| 91精品国产综合久久精品| 欧美电视剧免费全集观看 | 国产精品白丝jk白祙喷水网站| 成人听书哪个软件好| av电影天堂一区二区在线| 欧美三区在线视频| 日韩精品一区二区三区中文精品| 久久久久国产一区二区三区四区| 中文字幕一区二区三区蜜月| 亚洲高清视频的网址| 国产在线不卡一区| 欧美综合在线视频| 久久中文娱乐网| 亚洲精品精品亚洲| 国产呦精品一区二区三区网站| 色综合网色综合| 久久综合色综合88| 亚洲综合久久久| 国产91对白在线观看九色| 欧美日韩国产成人在线免费| 国产喂奶挤奶一区二区三区| 一区二区日韩电影| 国产老妇另类xxxxx| 欧美三级在线看| 日本一区二区三区dvd视频在线| 亚洲成人动漫一区| 成人美女视频在线看| 日韩视频免费直播| 亚洲综合免费观看高清完整版在线| 精品伊人久久久久7777人| 91高清在线观看| 国产精品麻豆欧美日韩ww| 麻豆精品视频在线观看免费| 欧洲生活片亚洲生活在线观看| 国产亚洲1区2区3区| 美国欧美日韩国产在线播放| 欧美性大战久久久久久久蜜臀 | 亚洲视频免费观看| 国产福利一区在线| 欧美成人伊人久久综合网| 亚洲福利视频导航| 在线观看国产精品网站| 国产精品久久久久9999吃药| 国产一区二区在线看| 欧美一区二区视频网站| 婷婷夜色潮精品综合在线| 色天使色偷偷av一区二区| 亚洲视频狠狠干| 91丝袜美女网| 一区二区三区四区不卡在线| 色综合视频一区二区三区高清| 国产亚洲人成网站| 丁香婷婷深情五月亚洲| 欧美国产在线观看| 白白色 亚洲乱淫| 中文字幕日本不卡| 91在线精品一区二区| ●精品国产综合乱码久久久久 | 欧美夫妻性生活| 亚洲风情在线资源站| 欧美精品v日韩精品v韩国精品v| 怡红院av一区二区三区| 欧美日韩国产一二三| 偷拍一区二区三区| 欧美大尺度电影在线| 精品在线你懂的| 久久精品人人做人人爽97| 国产成人福利片| 亚洲人成伊人成综合网小说| 在线观看亚洲a| 日本免费新一区视频 | 北条麻妃一区二区三区| 亚洲色图丝袜美腿| 欧美人体做爰大胆视频| 久草这里只有精品视频| 国产精品毛片高清在线完整版 | 8v天堂国产在线一区二区| 另类小说图片综合网| 国产欧美日韩视频一区二区| 99精品国产热久久91蜜凸| 亚洲国产日日夜夜| 久久精品综合网| 91福利视频网站| 精品一区二区三区影院在线午夜 | 亚洲第一福利视频在线| 日韩精品最新网址| www.综合网.com| 日本女人一区二区三区| 国产精品网站在线| 欧美老人xxxx18| 成人av免费在线| 日韩国产在线一| 国产精品久久福利| 日韩久久精品一区| 色婷婷一区二区| 国产精品一区二区在线看| 亚洲一区二区3| 久久精品视频在线看| 欧美在线免费观看亚洲| 国产老肥熟一区二区三区| 一区二区三区不卡在线观看| 久久九九久精品国产免费直播| 欧美福利一区二区| 91蜜桃免费观看视频| 国产精品2024| 日本在线不卡一区| 亚洲制服丝袜av| 中文字幕亚洲欧美在线不卡| 26uuu成人网一区二区三区| 欧美无砖专区一中文字| 不卡视频一二三| 国产一区在线观看视频| 蜜臀av性久久久久蜜臀aⅴ四虎 | 久久精品视频在线免费观看| 777午夜精品免费视频| 色天天综合久久久久综合片| 粉嫩一区二区三区性色av| 国产自产2019最新不卡| 免费成人性网站| 丝瓜av网站精品一区二区| 亚洲综合激情另类小说区| 综合久久久久久| 国产亚洲欧美日韩在线一区| 精品国产免费人成在线观看| 7777精品伊人久久久大香线蕉的| 色狠狠av一区二区三区| 99国产一区二区三精品乱码| 国产白丝精品91爽爽久久 | 中文字幕中文字幕一区二区| 国产目拍亚洲精品99久久精品| 久久亚洲二区三区| 成人欧美一区二区三区| 久久久精品国产免大香伊 | av电影天堂一区二区在线| 国产99一区视频免费| 成人综合婷婷国产精品久久蜜臀 | 国产福利一区二区| 国产91精品免费| 成人av中文字幕| 91在线小视频| 欧美性色黄大片| 91精品国产一区二区三区| 制服丝袜在线91| 精品久久久影院| 国产午夜精品福利| 亚洲欧洲成人精品av97| 亚洲国产精品自拍| 日本亚洲免费观看| 国产一级精品在线| youjizz久久| 欧美人xxxx| 26uuu久久天堂性欧美| 国产精品伦理在线| 亚洲午夜视频在线| 国精产品一区一区三区mba视频| 国产精品亚洲午夜一区二区三区| 成人app在线观看| 欧美日韩三级一区| 26uuu欧美| 亚洲精品水蜜桃| 日本系列欧美系列| 大尺度一区二区| 欧美日韩国产一区| 欧美国产综合色视频| 亚洲电影激情视频网站| 国内外成人在线| 在线观看三级视频欧美| 精品国产不卡一区二区三区| 国产精品国产三级国产aⅴ入口| 亚洲国产成人tv| 国产一区二区影院| 欧美日韩一区精品| 中文成人av在线| 日本sm残虐另类| 不卡的av网站| 精品国产乱码久久久久久久久| 亚洲区小说区图片区qvod| 久久99精品久久久久久久久久久久 | 一区二区三区免费在线观看| 激情综合五月婷婷|