home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1992 #19 / NN_1992_19.iso / spool / comp / os / os2 / misc / 29134 < prev    next >
Encoding:
Internet Message Format  |  1992-09-02  |  8.5 KB

  1. Path: sparky!uunet!haven.umd.edu!darwin.sura.net!Sirius.dfn.de!Urmel.Informatik.RWTH-Aachen.DE!dfv.rwth-aachen.de!sungate.fido.de!p1.hippo.fido.de!freax.fido.de!Alexander_Bell
  2. Date: Wed,  2 Sep 92 01:12:58 +0200
  3. From: Alexander_Bell@freax.fido.de (Alexander Bell)
  4. Subject: Traps- what do they mean?
  5. Message-ID: <ef5be600@f9.n242.z2.fidonet.org>
  6. Newsgroups: comp.os.os2.misc
  7. X-Comment-To: (William Unruh)
  8. Organization: Why stop now, just when I'm hating it? 
  9. Lines: 205
  10.  
  11.  WU> Is it possible for someone to publish all of the trap numbers and 
  12.  WU> what they mean? I just got a trap 000e at 
  13.  WU> 160:fff8ff5d-000d:a52b 60000,9084
  14.  WU> What do all of those numbers mean? 
  15.  
  16. =======================================================================
  17. Segment Group:
  18.  
  19. CS  --  code segment
  20.         -- current executing instructions
  21. SS  --  stack segment
  22.         -- used for accessing local program/function data
  23.         -- temporary information storage
  24.         -- used as segment register when BP is specified as a data
  25.            address base
  26. DS  --  data segment
  27.         -- used for accessing global program data
  28.         -- long-term information storage
  29.         -- used when no segment is specified for instruction data
  30. ES  --  extra segment
  31.         -- used for moves or comparisons on memory more than 64K
  32.            bytes apart
  33.  
  34. IP  --  instruction pointer
  35.         -- next instruction to execute in the code segment (CS:IP)
  36.  
  37. General Usage:  Segment manipulation
  38.  
  39. =======================================================================
  40. Data Group:
  41.  
  42. AX  --  accumulator register
  43. BX  --  base register
  44. CX  --  count register
  45. DX  --  data register
  46.  
  47. General Usage:  Data manipulation
  48.  
  49. =======================================================================
  50. Pointer Group:
  51.  
  52. SP  --  stack pointer
  53.         -- points to the top of the stack
  54.         -- automatically decremented by calls
  55.         -- automatically incremented by returns
  56. BP  --  base pointer
  57.         -- points to the base of the stack
  58.         -- used to access subroutine parameters
  59.  
  60. General Usage:  Stack manipulation
  61.  
  62. =======================================================================
  63. Index Group:
  64.  
  65. DI  --  destination index
  66.         -- destination of moves or comparisons
  67.         -- used with the extra segment register for moves or
  68.            comparisons on data more than 64K bytes apart (ES:DI)
  69. SI  --  source index
  70.         -- source of moves or comparisons
  71.  
  72. General Usage:  String operations
  73. ^L
  74. =======================================================================
  75. Miscellaneous:
  76.  
  77. MSW  --  machine status word
  78.          -- controls processor mode (real/protect)
  79.          -- allows emulation of coprocessors
  80.  
  81.                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  82.                |x|x|x|x|x|x|x|x|x|x|x|x|t|e|m|p|
  83.                +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  84.  
  85.                  t = task switched (1 = next instruction using
  86.                      a processor extension will cause exception
  87.                      7, allowing software to test the current
  88.                      processor extension context)
  89.                  e = emulate processor extension (1 = processor
  90.                      extension not-present exception (number 7)
  91.                      on ESC instructions will allow a processor
  92.                      extension to be emulated)
  93.                  m = monitor processor extension (1 = WAIT
  94.                      instructions cause a processor extension
  95.                      not-present exception (number 7) if 't'
  96.                      is also set)
  97.                  p = protected mode enable (1 = processor in
  98.                      protected mode, 0 = processor in real mode)
  99.  
  100. FLG  --  flags
  101.  
  102.                +-+--+--+--+--+--+--+--+--+--+-+--+-+--+-+--+
  103.                |x|NT|IOPL |OF|DF|IF|TF|SF|ZF|x|AF|x|PF|x|CF|
  104.                +-+--+--+--+--+--+--+--+--+--+-+--+-+--+-+--+
  105.  
  106.                  NT   = Nested Test Flag
  107.                  IOPL = Input/Output Privelege Level (2 bits)
  108.                  OF   = Overflow Flag
  109.                  DF   = Direction Flag
  110.                  IF   = Interrupt Flag
  111.                  TF   = Trace Flag
  112.                  SF   = Sign Flag
  113.                  ZF   = Zero Flag
  114.                  AF   = Auxiliary Carry Flag
  115.                  PF   = Parity Flag
  116.                  CF   = Carry Flag
  117.  
  118. =======================================================================
  119. Selectors:
  120.  
  121.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  122.     |i|i|i|i|i|i|i|i|i|i|i|i|i|t|p|p|
  123.     +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  124.  
  125.         i = index into GDT/LDT
  126.         t = table indicator (1 = LDT, 0 = GDT)
  127.         p = requestor privelege level (0 - 3)
  128.             Note: requestor privelege level can differ from the actual
  129.                   descriptor privelege level
  130. ^L
  131. =======================================================================
  132. CSLIM  --  maximum offset allowed in the code (CS) segment
  133. SSLIM  --  maximum offset allowed in the stack (SS) segment
  134. DSLIM  --  maximum offset allowed in the data (DS) segment
  135. ESLIM  --  maximum offset allowed in the extra (ES) segment
  136.  
  137. =======================================================================
  138. CSACC  --  access rights for the code (CS) segment
  139. SSACC  --  access rights for the stack (SS) segment
  140. DSACC  --  access rights for the data (DS) segment
  141. ESACC  --  access rights for the extra (ES) segment
  142.  
  143.                +-+-+-+-+-+-+-+-+
  144.                |p|l|l|s|t|t|t|a|
  145.                +-+-+-+-+-+-+-+-+
  146.  
  147.                  p = present (1 = present, 0 = swapped)
  148.                  l = descriptor privelege level (0 - 3)
  149.                         -- 00 = ring 0 (device drivers)
  150.                         -- 01 = ring 1 (not used)
  151.                         -- 10 = ring 2 (IOPL access)
  152.                         -- 11 = ring 3 (general access)
  153.                  s = segment descriptor (0 = system object,
  154.                                          1 = memory segment )
  155.                  t = segment type & access information
  156.                         -- 000 = data segment - R/O
  157.                         -- 001 = data segment - R/W
  158.                         -- 010 = unused
  159.                         -- 011 = data segment - R/W (expand down)
  160.                         -- 100 = code segment - E/O
  161.                         -- 101 = code segment - E/R
  162.                         -- 110 = code segment - E/O ("conforming")
  163.                         -- 111 = code segment - E/R ("conforming")
  164.                            *** R/O -- read-only
  165.                            *** R/W -- read/write
  166.                            *** E/O -- execute-only
  167.                            *** E/R -- execute/readable
  168.                  a = accessed (1 = accessed, 0 = not accessed)
  169. ^L
  170. =======================================================================
  171. ==                                                                   ==
  172. ==                        Exceptions & Traps                         ==
  173. ==                                                                   ==
  174. =======================================================================
  175.  
  176.      Interrupt Number     Class               Description
  177.      ================     =====               ===========
  178.              0            Fault               Divide error
  179.              1            Fault or Trap       Debugger interrupt
  180.              2            Interrupt           Nonmaskable interrupt
  181.              3            Trap                Breakpoint
  182.              4            Trap                Interrupt on overflow
  183.              5            Fault               Array boundary violation
  184.              6            Fault               Invalid opcode
  185.              7            Fault               Coprocessor not available
  186.              8            Abort               Double fault
  187.              9            Abort               Coprocessor segment overrun
  188.              A            Fault               Invalid task state segment
  189.              B            Fault               Segment not present
  190.              C            Fault               Stack exception
  191.              D            Fault               General protection violation
  192.              E            Fault               Page fault
  193.              F            (reserved)
  194.             10            Fault               Coprocessor error
  195.             11-1F         (reserved)
  196.             20-FF         Interrupt or Trap   System dependent
  197.  
  198. Interrupts: caused by hardware signals outside of the CPU
  199.  
  200. Traps:      errors detected after the execution of a software instruction
  201.  
  202. Faults:     errors detected during the processing of an instruction
  203.  
  204. Aborts:     errors so severe that some context is lost
  205.  
  206.  WU> And who is my "service
  207.  WU> representative"?
  208.  
  209. that's your task to find out...
  210.  
  211.  
  212. cu albe.
  213.  
  214.  
  215. ---
  216.