STACKS.INC
上传用户:dcs7469208
上传日期:2010-01-02
资源大小:443k
文件大小:2k
源码类别:

操作系统开发

开发平台:

DOS

  1. ;
  2. ; File:
  3. ;   stacks.inc
  4. ; Description:
  5. ;      Macro support for register stack frame
  6. ;
  7. ; Copyright (c) 1998
  8. ; Pasquale J. Villani
  9. ; All Rights Reserved
  10. ;
  11. ; This file is part of DOS-C.
  12. ;
  13. ; DOS-C is free software; you can redistribute it and/or
  14. ; modify it under the terms of the GNU General Public License
  15. ; as published by the Free Software Foundation; either version
  16. ; 2, or (at your option) any later version.
  17. ;
  18. ; DOS-C is distributed in the hope that it will be useful, but
  19. ; WITHOUT ANY WARRANTY; without even the implied warranty of
  20. ; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See
  21. ; the GNU General Public License for more details.
  22. ;
  23. ; You should have received a copy of the GNU General Public
  24. ; License along with DOS-C; see the file COPYING.  If not,
  25. ; write to the Free Software Foundation, 675 Mass Ave,
  26. ; Cambridge, MA 02139, USA.
  27. ;
  28. ; $Logfile:   C:/dos-c/hdr/stacks.inv  $
  29. ;
  30. ; $Header:   C:/dos-c/hdr/stacks.inv   1.0   07 Feb 1998 20:59:16   patv  $
  31. ;
  32. ; $Log:   C:/dos-c/hdr/stacks.inv  $
  33. ;
  34. ;   Rev 1.0   07 Feb 1998 20:59:16   patv
  35. ;Modified stack frame to match DOS standard
  36. ; $EndLog$
  37. page 60,132
  38. title Macro support for register stack frame
  39. ;
  40. ; Standard stack frame used throughout DOS-C
  41. ;
  42. ; MS-DOS specific
  43. ;
  44. ; +---------------+
  45. ; |    irp hi | 26
  46. ; +---------------+
  47. ; |    irp low | 24
  48. ; +---------------+
  49. ; |     flags | 22
  50. ; +---------------+
  51. ; | cs | 20
  52. ; +---------------+
  53. ; | ip | 18
  54. ; +---------------+
  55. ; | es | 16
  56. ; +---------------+
  57. ; | ds | 14
  58. ; +---------------+
  59. ; | bp | 12
  60. ; +---------------+
  61. ; | di | 10
  62. ; +---------------+
  63. ; | si | 8
  64. ; +---------------+
  65. ; | dx | 6
  66. ; +---------------+
  67. ; | cx | 4
  68. ; +---------------+
  69. ; | bx | 2
  70. ; +---------------+
  71. ; | ax | 0
  72. ; +---------------+
  73. ;
  74. RegFrame struc
  75. reg_ax dw (?)
  76. reg_bx dw (?)
  77. reg_cx dw (?)
  78. reg_dx dw (?)
  79. reg_si dw (?)
  80. reg_di dw (?)
  81. reg_bp dw (?)
  82. reg_ds dw (?)
  83. reg_es dw (?)
  84. reg_ip dw (?)
  85. reg_cs dw (?)
  86. reg_flags dw (?)
  87. irp_low dw (?)
  88. irp_hi dw (?)
  89. ends
  90. PUSH$ALL macro
  91. push es
  92. push ds
  93. push bp
  94. push di
  95. push si
  96. push dx
  97. push cx
  98. push bx
  99. push ax
  100. endm
  101. POP$ALL macro
  102. pop ax
  103. pop bx
  104. pop cx
  105. pop dx
  106. pop si
  107. pop di
  108. pop bp
  109. pop ds
  110. pop es
  111. endm