runtime.golden 7.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268
  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 DA 02 mov bx,2dah
  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 DF 02 mov dx,2dfh
  77. 007D EB 03 jmp 82h
  78. 007F BA DA 02 mov dx,2dah
  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 E8 02 mov dx,2e8h
  84. 008B B4 09 mov ah,9h
  85. 008D CD 21 int 21h
  86. 008F C3 ret
  87. 0090 BA E5 02 mov dx,2e5h
  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 53 push bx
  105. 00AF 51 push cx
  106. 00B0 50 push ax
  107. 00B1 8B 5E 04 mov bx,word ptr [bp+4h]
  108. 00B4 31 C9 xor cx,cx
  109. 00B6 8A 0F mov cl,byte ptr [bx]
  110. 00B8 43 inc bx
  111. 00B9 B4 02 mov ah,2h
  112. 00BB E3 07 jcxz 0c4h
  113. 00BD 8A 07 mov al,byte ptr [bx]
  114. 00BF CD 21 int 21h
  115. 00C1 43 inc bx
  116. 00C2 E2 F9 loop 0bdh
  117. 00C4 58 pop ax
  118. 00C5 59 pop cx
  119. 00C6 5B pop bx
  120. 00C7 89 EC mov sp,bp
  121. 00C9 5D pop bp
  122. 00CA C3 ret
  123. 00CB 55 push bp
  124. 00CC 8B EC mov bp,sp
  125. 00CE 50 push ax
  126. 00CF 53 push bx
  127. 00D0 51 push cx
  128. 00D1 52 push dx
  129. 00D2 57 push di
  130. 00D3 E8 13 00 call 0e9h
  131. 00D6 83 F9 02 cmp cx,2h
  132. 00D9 74 05 je 0e0h
  133. 00DB 8B 7E 04 mov di,word ptr [bp+4h]
  134. 00DE 89 05 mov word ptr [di],ax
  135. 00E0 5F pop di
  136. 00E1 5A pop dx
  137. 00E2 59 pop cx
  138. 00E3 5B pop bx
  139. 00E4 58 pop ax
  140. 00E5 89 EC mov sp,bp
  141. 00E7 5D pop bp
  142. 00E8 C3 ret
  143. 00E9 E8 C3 00 call 1afh
  144. 00EC 3C 1A cmp al,1ah
  145. 00EE 74 42 je 132h
  146. 00F0 3C 20 cmp al,20h
  147. 00F2 76 F5 jbe 0e9h
  148. 00F4 31 C9 xor cx,cx
  149. 00F6 3C 2D cmp al,2dh
  150. 00F8 75 06 jne 100h
  151. 00FA 41 inc cx
  152. 00FB E8 B1 00 call 1afh
  153. 00FE EB 07 jmp 107h
  154. 0100 3C 2B cmp al,2bh
  155. 0102 75 03 jne 107h
  156. 0104 E8 A8 00 call 1afh
  157. 0107 31 FF xor di,di
  158. 0109 3C 30 cmp al,30h
  159. 010B 72 18 jb 125h
  160. 010D 3C 39 cmp al,39h
  161. 010F 77 14 jnbe 125h
  162. 0111 2C 30 sub al,30h
  163. 0113 B4 00 mov ah,0h
  164. 0115 87 C7 xchg di,ax
  165. 0117 BB 0A 00 mov bx,0ah
  166. 011A F7 E3 mul bx
  167. 011C 03 C7 add ax,di
  168. 011E 89 C7 mov di,ax
  169. 0120 E8 8C 00 call 1afh
  170. 0123 EB E4 jmp 109h
  171. 0125 E8 9E 00 call 1c6h
  172. 0128 83 F9 00 cmp cx,0h
  173. 012B 74 02 je 12fh
  174. 012D F7 DF neg di
  175. 012F 8B C7 mov ax,di
  176. 0131 C3 ret
  177. 0132 B9 02 00 mov cx,2h
  178. 0135 C3 ret
  179. 0136 55 push bp
  180. 0137 8B EC mov bp,sp
  181. 0139 50 push ax
  182. 013A 53 push bx
  183. 013B 51 push cx
  184. 013C 52 push dx
  185. 013D 57 push di
  186. 013E E8 A8 FF call 0e9h
  187. 0141 83 F9 02 cmp cx,2h
  188. 0144 74 05 je 14bh
  189. 0146 8B 7E 04 mov di,word ptr [bp+4h]
  190. 0149 88 05 mov byte ptr [di],al
  191. 014B 5F pop di
  192. 014C 5A pop dx
  193. 014D 59 pop cx
  194. 014E 5B pop bx
  195. 014F 58 pop ax
  196. 0150 89 EC mov sp,bp
  197. 0152 5D pop bp
  198. 0153 C3 ret
  199. 0154 55 push bp
  200. 0155 8B EC mov bp,sp
  201. 0157 50 push ax
  202. 0158 53 push bx
  203. 0159 57 push di
  204. 015A E8 52 00 call 1afh
  205. 015D 88 C2 mov dl,al
  206. 015F 8B 7E 04 mov di,word ptr [bp+4h]
  207. 0162 88 15 mov byte ptr [di],dl
  208. 0164 5F pop di
  209. 0165 5B pop bx
  210. 0166 58 pop ax
  211. 0167 89 EC mov sp,bp
  212. 0169 5D pop bp
  213. 016A C3 ret
  214. 016B 55 push bp
  215. 016C 8B EC mov bp,sp
  216. 016E 50 push ax
  217. 016F 53 push bx
  218. 0170 51 push cx
  219. 0171 57 push di
  220. 0172 E8 3A 00 call 1afh
  221. 0175 31 C9 xor cx,cx
  222. 0177 3C 54 cmp al,54h
  223. 0179 74 12 je 18dh
  224. 017B 3C 74 cmp al,74h
  225. 017D 74 0E je 18dh
  226. 017F 3C 59 cmp al,59h
  227. 0181 74 0A je 18dh
  228. 0183 3C 79 cmp al,79h
  229. 0185 74 06 je 18dh
  230. 0187 3C 31 cmp al,31h
  231. 0189 74 02 je 18dh
  232. 018B EB 01 jmp 18eh
  233. 018D 41 inc cx
  234. 018E 8B 7E 04 mov di,word ptr [bp+4h]
  235. 0191 89 0D mov word ptr [di],cx
  236. 0193 5F pop di
  237. 0194 59 pop cx
  238. 0195 5B pop bx
  239. 0196 58 pop ax
  240. 0197 89 EC mov sp,bp
  241. 0199 5D pop bp
  242. 019A C3 ret
  243. 019B 50 push ax
  244. 019C E8 10 00 call 1afh
  245. 019F 3C 0D cmp al,0dh
  246. 01A1 74 0A je 1adh
  247. 01A3 3C 0A cmp al,0ah
  248. 01A5 74 06 je 1adh
  249. 01A7 3C 1A cmp al,1ah
  250. 01A9 74 02 je 1adh
  251. 01AB EB EF jmp 19ch
  252. 01AD 58 pop ax
  253. 01AE C3 ret
  254. 01AF 8B 1E EE 02 mov bx,word ptr [2eeh]
  255. 01B3 83 FB 00 cmp bx,0h
  256. 01B6 74 09 je 1c1h
  257. 01B8 8A C3 mov al,bl
  258. 01BA 31 DB xor bx,bx
  259. 01BC 89 1E EE 02 mov word ptr [2eeh],bx
  260. 01C0 C3 ret
  261. 01C1 B4 08 mov ah,8h
  262. 01C3 CD 21 int 21h
  263. 01C5 C3 ret
  264. 01C6 88 C2 mov dl,al
  265. 01C8 BB 01 00 mov bx,1h
  266. 01CB 8A DA mov bl,dl
  267. 01CD 89 1E EE 02 mov word ptr [2eeh],bx
  268. 01D1 C3 ret