home *** CD-ROM | disk | FTP | other *** search
/ Collection of Hack-Phreak Scene Programs / cleanhpvac.zip / cleanhpvac / CTFASMTT.ZIP / LESSON1.DOC < prev    next >
Text File  |  1994-10-30  |  3KB  |  88 lines

  1. LESSON1 - THE REGISTERS AND SEGMENTS
  2.  
  3. ok, assembly is not a language like pascal or c because
  4. unlike them there is no predefined command link let say
  5. "writeln", "printf", assembly doesn't provide those tools for you
  6. so how those assembly works, well first they have predefine registers :
  7.  
  8. AX - accumulator index   -\
  9. BX - Base index           | all of these are the data holders
  10. CX - Count index          |
  11. DX - Data index          -/
  12.  
  13. SP - Stack pointer       -\
  14. BP - Base pointer         |
  15. SI - Source index         | all of these are the pointing and index storage
  16. DI - Destination indec    | registers
  17. IP - Instruction pointer -/
  18.  
  19. CS - Code segment        -\
  20. DS - Data segment         | all of these are segments holder
  21. SS - Stack segment        |
  22. ES - Extra segment       -/
  23.  
  24. FLAGS - Holds some of the function conditions
  25.  
  26. ok now to be more specific :
  27.  
  28. Data registers :
  29.  
  30. they are the basic registers for all the computer calcs, and position
  31. each of the registers is 16bit and they are divided into two registers
  32. high and low which are 8 bit :
  33. AX - ah (high), al (lo)
  34. BX - bh (high), bl (lo)
  35. CX - ch (high), cl (lo)
  36. DX - dh (high), dl (lo)
  37.  
  38. high is MSB - most significent byte
  39. lo is LSB - least significent byte
  40.  
  41. Pointing registers :
  42.  
  43. each of these registers has an unique job :
  44.  
  45. SP - is the offset of the stack   (-n-)
  46. BP - a pointer for the stack      (-n-)
  47. SI - is the source index, uses as an offset in memory transfers
  48. DI - is the destination index, uses as an offset in memory transfers
  49. IP - is the offset of the current instruction (-n-)
  50.  
  51. (-n-) means don't change unless you know what your'e doing
  52.  
  53. Segment registers :
  54.  
  55. CS - is the segment of the code       (-n-)
  56. DS - is the segment (usually) of the data
  57. SS - is the segment for the stack     (-n-)
  58. ES - is an extra segment, uses for memory transfers
  59.  
  60. Flags, will be disscussed later
  61.  
  62. now assembly works with segments and each segment max limit is 64K,
  63. so when we have a segment we will have to give it a definition,
  64. so we will need the command "Assume" which gives each one of the segments
  65. registers it's default segment, so lets see a typical assembly structure
  66.  
  67. Sseg segment  ; a semicolon (;) is a remark and will not be compiled
  68.   db 10 dup (?)
  69. ends          ; each segment has a name and the "segment" after it
  70.               ; when we finished to define stuff in the segment
  71.               ; we close it with ends (end segment)
  72. Dseg segment
  73. ends
  74.  
  75. Cseg segment
  76. assume cs:cseg,ds:dseg,ss:sseg
  77. ends
  78. end
  79.  
  80. know as we saw segment is built as follow :
  81. Name Segment
  82. .
  83. .
  84. .
  85. Ends
  86. know in the dseg all the data will be stored, in the sseg the stack
  87. and in the cseg the code.
  88.