Matches in DBpedia 2016-04 for { <http://wikidata.dbpedia.org/resource/Q2580393> ?p ?o }
Showing triples 1 to 29 of
29
with 100 triples per page.
- Q2580393 subject Q7774966.
- Q2580393 abstract "LOADALL is the common name for two different, undocumented machine instructions of Intel 80286 and Intel 80386 processors, which allow access to areas normally outside of the IA-32 API scope, like descriptor cache registers. The LOADALL for 286 processors is encoded 0Fh 05h, while the LOADALL for 386 processors is 0Fh 07h.Both variants – as the name implies – load all CPU internal registers in one operation. LOADALL had the unique ability to set up the visible part of the segment registers (selector) independently of their corresponding cached part, allowing the programmer to bring the CPU into states not otherwise allowed by the official programming model.As an example of the usefulness of these techniques, LOADALL can set up the CPU to allow access to all memory from real mode, without having to switch it into protected mode (the so-called 'unreal mode'). Programs such as the RAMDRIVE and HIMEM drivers in MS-DOS, AboveDisk (a commercial package by Above Software which converted hard disk or extended memory into expanded memory), and OS/2 used LOADALL. Examination of the virtual machine monitor code in Windows/386 2.1 shows it uses both the 286 and the even less known 386 variant. Microsoft's HIMEM.SYS version 2.06 also used LOADALL to quickly copy to and from extended memory on 286 systems.Another interesting usage of LOADALL, laid out in the book The Design of OS/2, would have been to allow running former real mode programs in 16-bit protected mode, as utilized by Digital Research's Concurrent DOS 286 since 1985 as well as FlexOS 286 and IBM 4680 OS since 1986/1987. Marking all the descriptor caches in the GDT and LDTs "not present" would allow the operating system to trap segment register reloads as well as attempts at performing real-mode specific "segment arithmetic" and emulate the desired behavior by updating the segment descriptors (LOADALL again). This "virtual 8086 mode" for the 80286 was, however, too slow to be practical. The idea had to be mostly discarded, furthermore, due to errata in some early Intel 80286 processors before the E-2 stepping. As a result, OS/2 1.x – and Windows in "standard" mode as well – had to run DOS programs in real mode. Nevertheless the idea was not lost; it led Intel to introduce the virtual mode of the 80386, allowing the implementation of "DOS boxes" at last in a relatively efficient and documented way.Because LOADALL did not perform any checks on the validity of the data loaded into processor registers, it was possible to load a processor state which could not be normally entered, such as using real mode (PE=0) together with paging (PG=1) on 386 class CPUs.As the two LOADALL instructions were never documented, and do not exist on later processors, the opcodes were reused in the AMD64 architecture. The opcode for the 286 LOADALL instruction, 0F05, became the AMD64 instruction SYSCALL; the 386 LOADALL instruction, 0F07, became the SYSRET instruction. These definitions were cemented even on Intel CPUs with the introduction of the Intel 64 implementation of AMD64.".
- Q2580393 wikiPageWikiLink Q1064456.
- Q2580393 wikiPageWikiLink Q1076974.
- Q2580393 wikiPageWikiLink Q1143380.
- Q2580393 wikiPageWikiLink Q1196217.
- Q2580393 wikiPageWikiLink Q165194.
- Q2580393 wikiPageWikiLink Q183475.
- Q2580393 wikiPageWikiLink Q185608.
- Q2580393 wikiPageWikiLink Q189794.
- Q2580393 wikiPageWikiLink Q237794.
- Q2580393 wikiPageWikiLink Q2560413.
- Q2580393 wikiPageWikiLink Q262238.
- Q2580393 wikiPageWikiLink Q272629.
- Q2580393 wikiPageWikiLink Q355694.
- Q2580393 wikiPageWikiLink Q369664.
- Q2580393 wikiPageWikiLink Q3867065.
- Q2580393 wikiPageWikiLink Q4439.
- Q2580393 wikiPageWikiLink Q47604.
- Q2580393 wikiPageWikiLink Q485021.
- Q2580393 wikiPageWikiLink Q622888.
- Q2580393 wikiPageWikiLink Q7774966.
- Q2580393 wikiPageWikiLink Q796829.
- Q2580393 wikiPageWikiLink Q841064.
- Q2580393 wikiPageWikiLink Q888341.
- Q2580393 wikiPageWikiLink Q907944.
- Q2580393 wikiPageWikiLink Q907979.
- Q2580393 comment "LOADALL is the common name for two different, undocumented machine instructions of Intel 80286 and Intel 80386 processors, which allow access to areas normally outside of the IA-32 API scope, like descriptor cache registers. The LOADALL for 286 processors is encoded 0Fh 05h, while the LOADALL for 386 processors is 0Fh 07h.Both variants – as the name implies – load all CPU internal registers in one operation.".
- Q2580393 label "LOADALL".