home *** CD-ROM | disk | FTP | other *** search
/ minnie.tuhs.org / unixen.tar / unixen / PDP-11 / Trees / V7 / usr / src / cmd / as / as29.s < prev    next >
Encoding:
Text File  |  1979-01-10  |  3.4 KB  |  263 lines

  1. /
  2. /
  3.  
  4. / as9 -- PDP-11 assembler pass 2
  5.  
  6. eae = 0
  7.  
  8.     .data
  9. symtab:
  10.  
  11. / special variables
  12.  
  13. dotrel: 02; dot:000000 /.
  14.  01; dotdot:000000 /..
  15.  
  16. / register
  17.  
  18. 24;000000 /r0
  19. 24;000001 /r1
  20. 24;000002 /r2
  21. 24;000003 /r3
  22. 24;000004 /r4
  23. 24;000005 /r5
  24. 24;000006 /sp
  25. 24;000007 /pc
  26.  
  27.  
  28. .if eae
  29. /eae & switches
  30.  
  31. 01;177570 /csw
  32. 01;177300 /div
  33. 01;177302 /ac
  34. 01;177304 /mq
  35. 01;177306 /mul
  36. 01;177310 /sc
  37. 01;177311 /sr
  38. 01;177312 /nor
  39. 01;177314 /lsh
  40. 01;177316 /ash
  41.  
  42. .endif
  43.  
  44. / double operand
  45.  
  46. 13;0010000 /mov
  47. 13;0110000 /movb
  48. 13;0020000 /cmp
  49. 13;0120000 /cmpb
  50. 13;0030000 /bit
  51. 13;0130000 /bitb
  52. 13;0040000 /bic
  53. 13;0140000 /bicb
  54. 13;0050000 /bis
  55. 13;0150000 /bisb
  56. 13;0060000 /add
  57. 13;0160000 /sub
  58.  
  59. / branch
  60.  
  61. 06;0000400 /br
  62. 06;0001000 /bne
  63. 06;0001400 /beq
  64. 06;0002000 /bge
  65. 06;0002400 /blt
  66. 06;0003000 /bgt
  67. 06;0003400 /ble
  68. 06;0100000 /bpl
  69. 06;0100400 /bmi
  70. 06;0101000 /bhi
  71. 06;0101400 /blos
  72. 06;0102000 /bvc
  73. 06;0102400 /bvs
  74. 06;0103000 /bhis
  75. 06;0103000 /bec
  76. 06;0103000 /bcc
  77. 06;0103400 /blo
  78. 06;0103400 /bcs
  79. 06;0103400 /bes
  80.  
  81. / jump/ branch type
  82.  
  83. 35;0000400 /jbr
  84. 36;0001000 /jne
  85. 36;0001400 /jeq
  86. 36;0002000 /jge
  87. 36;0002400 /jlt
  88. 36;0003000 /jgt
  89. 36;0003400 /jle
  90. 36;0100000 /jpl
  91. 36;0100400 /jmi
  92. 36;0101000 /jhi
  93. 36;0101400 /jlos
  94. 36;0102000 /jvc
  95. 36;0102400 /jvs
  96. 36;0103000 /jhis
  97. 36;0103000 /jec
  98. 36;0103000 /jcc
  99. 36;0103400 /jlo
  100. 36;0103400 /jcs
  101. 36;0103400 /jes
  102.  
  103. / single operand
  104.  
  105. 15;0005000 /clr
  106. 15;0105000 /clrb
  107. 15;0005100 /com
  108. 15;0105100 /comb
  109. 15;0005200 /inc
  110. 15;0105200 /incb
  111. 15;0005300 /dec
  112. 15;0105300 /decb
  113. 15;0005400 /neg
  114. 15;0105400 /negb
  115. 15;0005500 /adc
  116. 15;0105500 /adcb
  117. 15;0005600 /sbc
  118. 15;0105600 /sbcb
  119. 15;0005700 /tst
  120. 15;0105700 /tstb
  121. 15;0006000 /ror
  122. 15;0106000 /rorb
  123. 15;0006100 /rol
  124. 15;0106100 /rolb
  125. 15;0006200 /asr
  126. 15;0106200 /asrb
  127. 15;0006300 /asl
  128. 15;0106300 /aslb
  129. 15;0000100 /jmp
  130. 15;0000300 /swab
  131.  
  132. / jsr
  133.  
  134. 07;0004000 /jsr
  135.  
  136. / rts
  137.  
  138. 10;000200 /rts
  139.  
  140. / simple operand
  141.  
  142. 11;104400 /sys
  143.  
  144. / flag-setting
  145.  
  146. 01;0000241 /clc
  147. 01;0000242 /clv
  148. 01;0000244 /clz
  149. 01;0000250 /cln
  150. 01;0000261 /sec
  151. 01;0000262 /sev
  152. 01;0000264 /sez
  153. 01;0000270 /sen
  154.  
  155. / floating point ops
  156.  
  157. 01;170000 / cfcc
  158. 01;170001 / setf
  159. 01;170011 / setd
  160. 01;170002 / seti
  161. 01;170012 / setl
  162. 15;170400 / clrf
  163. 15;170700 / negf
  164. 15;170600 / absf
  165. 15;170500 / tstf
  166. 12;172400 / movf
  167. 14;177000 / movif
  168. 05;175400 / movfi
  169. 14;177400 / movof
  170. 05;176000 / movfo
  171. 14;172000 / addf
  172. 14;173000 / subf
  173. 14;171000 / mulf
  174. 14;174400 / divf
  175. 14;173400 / cmpf
  176. 14;171400 / modf
  177. 14;176400 / movie
  178. 05;175000 / movei
  179. 15;170100 / ldfps
  180. 15;170200 / stfps
  181. 24;000000 / fr0
  182. 24;000001 / fr1
  183. 24;000002 / fr2
  184. 24;000003 / fr3
  185. 24;000004 / fr4
  186. 24;000005 / fr5
  187.  
  188. / 11/45 operations
  189.  
  190. 30;072000 /als (ash)
  191. 30;073000 /alsc (ashc)
  192. 30;070000 /mpy
  193. .if eae-1
  194. 30;070000/ mul
  195. 30;071000 / div
  196. 30;072000 / ash
  197. 30;073000 /ashc
  198. .endif
  199. 30;071000 /dvd
  200. 07;074000 /xor
  201. 15;006700 /sxt
  202. 11;006400 /mark
  203. 31;077000 /sob
  204.  
  205. / specials
  206.  
  207. 16;000000 /.byte
  208. 20;000000 /.even
  209. 21;000000 /.if
  210. 22;000000 /.endif
  211. 23;000000 /.globl
  212. 25;000000 /.text
  213. 26;000000 /.data
  214. 27;000000 /.bss
  215. 32;000000 /.comm
  216.  
  217. start:
  218.     mov    (sp)+,r0
  219.     tst    (sp)+
  220. 1:
  221.     mov    (sp)+,r1
  222.     cmpb    (r1),$'-
  223.     bne    1f
  224.     dec    r0
  225.     cmpb    1(r1),$'g
  226.     bne    2f
  227.     mov    $40,defund    / globalize externals
  228.     br    1b
  229. 2:
  230.     cmpb    1(r1),$'o
  231.     bne    1b
  232.     dec    r0
  233.     mov    (sp)+,r1
  234.     mov    r1,a.outp
  235.     mov    r1,a.outp1
  236.     mov    r1,a.outp2
  237.     br    1b
  238. 1:
  239.     cmp    r0,$4
  240.     bge    1f
  241.     jmp    aexit
  242. 1:
  243.     mov    r1,a.tmp1
  244.     mov    (sp)+,a.tmp2
  245.     mov    (sp)+,a.tmp3
  246.     jsr    r5,ofile; a.tmp1
  247.     movb    r0,txtfil
  248.     jsr    r5,ofile; a.tmp2
  249.     movb    r0,fbfil
  250.     jsr    r5,ofile; a.tmp3
  251.     movb    r0,symf
  252.     movb    r0,fin
  253.     sys    creat; a.outp1:a.out; 666
  254.     bec    1f
  255.     jsr    r5,filerr; a.outp
  256. 1:
  257.     movb    r0,fout
  258.     jmp    go
  259.  
  260. / overlaid buffer
  261. inbuf    = start
  262. .    = inbuf+512.
  263.