runtime.golden 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231
  1. # runtime.golden -- full FCML disassembly of the runtime's code region.
  2. #
  3. # GENERATED by tests/check_runtime.py --bless, then READ THE DIFF and commit.
  4. # Every line is "OFFSET BYTES MNEMONIC". This file is a deliberate
  5. # tripwire: any edit to Runtime.mod invalidates it, because inserting an
  6. # instruction renumbers everything after it, so you are forced to look at the
  7. # whole new listing and confirm you meant every change. See the "Re-baselining
  8. # the golden" section of check_runtime.py.
  9. #
  10. # Region: bytes 0..codeEnd of the runtime image (see the code/data split in
  11. # EmitData). Relative targets are absolute offsets within the runtime, which
  12. # the compiler adds to the runtime's load address when it emits a CALL.
  13. 0000 8B F0 mov si,ax
  14. 0002 8B 54 04 mov dx,word ptr [si+4h]
  15. 0005 8B 4C 06 mov cx,word ptr [si+6h]
  16. 0008 39 D1 cmp cx,dx
  17. 000A 76 0D jbe 19h
  18. 000C 89 D7 mov di,dx
  19. 000E 31 C0 xor ax,ax
  20. 0010 89 05 mov word ptr [di],ax
  21. 0012 83 C7 02 add di,2h
  22. 0015 39 CF cmp di,cx
  23. 0017 72 F5 jb 0eh
  24. 0019 1E push ds
  25. 001A 07 pop es
  26. 001B C3 ret
  27. 001C 31 C0 xor ax,ax
  28. 001E B4 4C mov ah,4ch
  29. 0020 CD 21 int 21h
  30. 0022 C3 ret
  31. 0023 C3 ret
  32. 0024 55 push bp
  33. 0025 8B EC mov bp,sp
  34. 0027 8B 46 04 mov ax,word ptr [bp+4h]
  35. 002A 83 F8 00 cmp ax,0h
  36. 002D 7D 0A jnl 39h
  37. 002F 50 push ax
  38. 0030 B0 2D mov al,2dh
  39. 0032 B4 02 mov ah,2h
  40. 0034 CD 21 int 21h
  41. 0036 58 pop ax
  42. 0037 F7 D8 neg ax
  43. 0039 B9 0A 00 mov cx,0ah
  44. 003C BB 9D 02 mov bx,29dh
  45. 003F 89 DE mov si,bx
  46. 0041 31 D2 xor dx,dx
  47. 0043 F7 F1 div ax,cx
  48. 0045 80 C2 30 add dl,30h
  49. 0048 4E dec si
  50. 0049 88 14 mov byte ptr [si],dl
  51. 004B 83 F8 00 cmp ax,0h
  52. 004E 75 F1 jne 41h
  53. 0050 39 DE cmp si,bx
  54. 0052 74 09 je 5dh
  55. 0054 8A 04 mov al,byte ptr [si]
  56. 0056 B4 02 mov ah,2h
  57. 0058 CD 21 int 21h
  58. 005A 46 inc si
  59. 005B EB F3 jmp 50h
  60. 005D 89 EC mov sp,bp
  61. 005F 5D pop bp
  62. 0060 C3 ret
  63. 0061 55 push bp
  64. 0062 8B EC mov bp,sp
  65. 0064 8A 46 04 mov al,byte ptr [bp+4h]
  66. 0067 89 EC mov sp,bp
  67. 0069 5D pop bp
  68. 006A B4 02 mov ah,2h
  69. 006C CD 21 int 21h
  70. 006E C3 ret
  71. 006F 55 push bp
  72. 0070 8B EC mov bp,sp
  73. 0072 83 7E 04 00 cmp word ptr [bp+4h],0h
  74. 0076 89 EC mov sp,bp
  75. 0078 75 05 jne 7fh
  76. 007A BA A2 02 mov dx,2a2h
  77. 007D EB 03 jmp 82h
  78. 007F BA 9D 02 mov dx,29dh
  79. 0082 B4 09 mov ah,9h
  80. 0084 CD 21 int 21h
  81. 0086 5D pop bp
  82. 0087 C3 ret
  83. 0088 BA AB 02 mov dx,2abh
  84. 008B B4 09 mov ah,9h
  85. 008D CD 21 int 21h
  86. 008F C3 ret
  87. 0090 BA A8 02 mov dx,2a8h
  88. 0093 B4 09 mov ah,9h
  89. 0095 CD 21 int 21h
  90. 0097 C3 ret
  91. 0098 5B pop bx
  92. 0099 31 C9 xor cx,cx
  93. 009B 8A 0F mov cl,byte ptr [bx]
  94. 009D 43 inc bx
  95. 009E B4 02 mov ah,2h
  96. 00A0 E3 07 jcxz 0a9h
  97. 00A2 8A 07 mov al,byte ptr [bx]
  98. 00A4 CD 21 int 21h
  99. 00A6 43 inc bx
  100. 00A7 E2 F9 loop 0a2h
  101. 00A9 FF E3 jmp bx
  102. 00AB 55 push bp
  103. 00AC 8B EC mov bp,sp
  104. 00AE 50 push ax
  105. 00AF 53 push bx
  106. 00B0 51 push cx
  107. 00B1 52 push dx
  108. 00B2 57 push di
  109. 00B3 E8 BC 00 call 172h
  110. 00B6 3C 1A cmp al,1ah
  111. 00B8 74 54 je 10eh
  112. 00BA 3C 20 cmp al,20h
  113. 00BC 76 F5 jbe 0b3h
  114. 00BE 31 C9 xor cx,cx
  115. 00C0 3C 2D cmp al,2dh
  116. 00C2 75 06 jne 0cah
  117. 00C4 41 inc cx
  118. 00C5 E8 AA 00 call 172h
  119. 00C8 EB 07 jmp 0d1h
  120. 00CA 3C 2B cmp al,2bh
  121. 00CC 75 03 jne 0d1h
  122. 00CE E8 A1 00 call 172h
  123. 00D1 31 FF xor di,di
  124. 00D3 3C 30 cmp al,30h
  125. 00D5 72 18 jb 0efh
  126. 00D7 3C 39 cmp al,39h
  127. 00D9 77 14 jnbe 0efh
  128. 00DB 2C 30 sub al,30h
  129. 00DD B4 00 mov ah,0h
  130. 00DF 87 C7 xchg di,ax
  131. 00E1 BB 0A 00 mov bx,0ah
  132. 00E4 F7 E3 mul bx
  133. 00E6 03 C7 add ax,di
  134. 00E8 89 C7 mov di,ax
  135. 00EA E8 85 00 call 172h
  136. 00ED EB E4 jmp 0d3h
  137. 00EF E8 97 00 call 189h
  138. 00F2 83 F9 02 cmp cx,2h
  139. 00F5 74 0E je 105h
  140. 00F7 83 F9 00 cmp cx,0h
  141. 00FA 74 02 je 0feh
  142. 00FC F7 DF neg di
  143. 00FE 8B C7 mov ax,di
  144. 0100 8B 7E 04 mov di,word ptr [bp+4h]
  145. 0103 89 05 mov word ptr [di],ax
  146. 0105 5F pop di
  147. 0106 5A pop dx
  148. 0107 59 pop cx
  149. 0108 5B pop bx
  150. 0109 58 pop ax
  151. 010A 89 EC mov sp,bp
  152. 010C 5D pop bp
  153. 010D C3 ret
  154. 010E 5F pop di
  155. 010F 5A pop dx
  156. 0110 59 pop cx
  157. 0111 5B pop bx
  158. 0112 58 pop ax
  159. 0113 89 EC mov sp,bp
  160. 0115 5D pop bp
  161. 0116 C3 ret
  162. 0117 55 push bp
  163. 0118 8B EC mov bp,sp
  164. 011A 50 push ax
  165. 011B 53 push bx
  166. 011C 57 push di
  167. 011D E8 52 00 call 172h
  168. 0120 88 C2 mov dl,al
  169. 0122 8B 7E 04 mov di,word ptr [bp+4h]
  170. 0125 88 15 mov byte ptr [di],dl
  171. 0127 5F pop di
  172. 0128 5B pop bx
  173. 0129 58 pop ax
  174. 012A 89 EC mov sp,bp
  175. 012C 5D pop bp
  176. 012D C3 ret
  177. 012E 55 push bp
  178. 012F 8B EC mov bp,sp
  179. 0131 50 push ax
  180. 0132 53 push bx
  181. 0133 51 push cx
  182. 0134 57 push di
  183. 0135 E8 3A 00 call 172h
  184. 0138 31 C9 xor cx,cx
  185. 013A 3C 54 cmp al,54h
  186. 013C 74 12 je 150h
  187. 013E 3C 74 cmp al,74h
  188. 0140 74 0E je 150h
  189. 0142 3C 59 cmp al,59h
  190. 0144 74 0A je 150h
  191. 0146 3C 79 cmp al,79h
  192. 0148 74 06 je 150h
  193. 014A 3C 31 cmp al,31h
  194. 014C 74 02 je 150h
  195. 014E EB 01 jmp 151h
  196. 0150 41 inc cx
  197. 0151 8B 7E 04 mov di,word ptr [bp+4h]
  198. 0154 89 0D mov word ptr [di],cx
  199. 0156 5F pop di
  200. 0157 59 pop cx
  201. 0158 5B pop bx
  202. 0159 58 pop ax
  203. 015A 89 EC mov sp,bp
  204. 015C 5D pop bp
  205. 015D C3 ret
  206. 015E 50 push ax
  207. 015F E8 10 00 call 172h
  208. 0162 3C 0D cmp al,0dh
  209. 0164 74 0A je 170h
  210. 0166 3C 0A cmp al,0ah
  211. 0168 74 06 je 170h
  212. 016A 3C 1A cmp al,1ah
  213. 016C 74 02 je 170h
  214. 016E EB EF jmp 15fh
  215. 0170 58 pop ax
  216. 0171 C3 ret
  217. 0172 8B 1E B1 02 mov bx,word ptr [2b1h]
  218. 0176 83 FB 00 cmp bx,0h
  219. 0179 74 09 je 184h
  220. 017B 8A C3 mov al,bl
  221. 017D 31 DB xor bx,bx
  222. 017F 89 1E B1 02 mov word ptr [2b1h],bx
  223. 0183 C3 ret
  224. 0184 B4 08 mov ah,8h
  225. 0186 CD 21 int 21h
  226. 0188 C3 ret
  227. 0189 88 C2 mov dl,al
  228. 018B BB 01 00 mov bx,1h
  229. 018E 8A DA mov bl,dl
  230. 0190 89 1E B1 02 mov word ptr [2b1h],bx
  231. 0194 C3 ret