runtime.golden 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227
  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 99 02 mov bx,299h
  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 8B EC mov bp,sp
  64. 0063 8A 46 02 mov al,byte ptr [bp+2h]
  65. 0066 89 EC mov sp,bp
  66. 0068 B4 02 mov ah,2h
  67. 006A CD 21 int 21h
  68. 006C C3 ret
  69. 006D 8B EC mov bp,sp
  70. 006F 83 7E 02 00 cmp word ptr [bp+2h],0h
  71. 0073 89 EC mov sp,bp
  72. 0075 75 05 jne 7ch
  73. 0077 BA 9E 02 mov dx,29eh
  74. 007A EB 03 jmp 7fh
  75. 007C BA 99 02 mov dx,299h
  76. 007F B4 09 mov ah,9h
  77. 0081 CD 21 int 21h
  78. 0083 C3 ret
  79. 0084 BA A7 02 mov dx,2a7h
  80. 0087 B4 09 mov ah,9h
  81. 0089 CD 21 int 21h
  82. 008B C3 ret
  83. 008C BA A4 02 mov dx,2a4h
  84. 008F B4 09 mov ah,9h
  85. 0091 CD 21 int 21h
  86. 0093 C3 ret
  87. 0094 5B pop bx
  88. 0095 31 C9 xor cx,cx
  89. 0097 8A 0F mov cl,byte ptr [bx]
  90. 0099 43 inc bx
  91. 009A B4 02 mov ah,2h
  92. 009C E3 07 jcxz 0a5h
  93. 009E 8A 07 mov al,byte ptr [bx]
  94. 00A0 CD 21 int 21h
  95. 00A2 43 inc bx
  96. 00A3 E2 F9 loop 9eh
  97. 00A5 FF E3 jmp bx
  98. 00A7 55 push bp
  99. 00A8 8B EC mov bp,sp
  100. 00AA 50 push ax
  101. 00AB 53 push bx
  102. 00AC 51 push cx
  103. 00AD 52 push dx
  104. 00AE 57 push di
  105. 00AF E8 BC 00 call 16eh
  106. 00B2 3C 1A cmp al,1ah
  107. 00B4 74 54 je 10ah
  108. 00B6 3C 14 cmp al,14h
  109. 00B8 76 F5 jbe 0afh
  110. 00BA 31 C9 xor cx,cx
  111. 00BC 3C 2D cmp al,2dh
  112. 00BE 75 06 jne 0c6h
  113. 00C0 41 inc cx
  114. 00C1 E8 AA 00 call 16eh
  115. 00C4 EB 07 jmp 0cdh
  116. 00C6 3C 2B cmp al,2bh
  117. 00C8 75 03 jne 0cdh
  118. 00CA E8 A1 00 call 16eh
  119. 00CD 31 FF xor di,di
  120. 00CF 3C 30 cmp al,30h
  121. 00D1 72 18 jb 0ebh
  122. 00D3 3C 39 cmp al,39h
  123. 00D5 77 14 jnbe 0ebh
  124. 00D7 2C 30 sub al,30h
  125. 00D9 B4 00 mov ah,0h
  126. 00DB 87 C7 xchg di,ax
  127. 00DD BB 0A 00 mov bx,0ah
  128. 00E0 F7 E3 mul bx
  129. 00E2 03 C7 add ax,di
  130. 00E4 89 C7 mov di,ax
  131. 00E6 E8 85 00 call 16eh
  132. 00E9 EB E4 jmp 0cfh
  133. 00EB E8 97 00 call 185h
  134. 00EE 83 F9 02 cmp cx,2h
  135. 00F1 74 0E je 101h
  136. 00F3 83 F9 00 cmp cx,0h
  137. 00F6 74 02 je 0fah
  138. 00F8 F7 DF neg di
  139. 00FA 8B C7 mov ax,di
  140. 00FC 8B 7E 04 mov di,word ptr [bp+4h]
  141. 00FF 89 05 mov word ptr [di],ax
  142. 0101 5F pop di
  143. 0102 5A pop dx
  144. 0103 59 pop cx
  145. 0104 5B pop bx
  146. 0105 58 pop ax
  147. 0106 89 EC mov sp,bp
  148. 0108 5D pop bp
  149. 0109 C3 ret
  150. 010A 5F pop di
  151. 010B 5A pop dx
  152. 010C 59 pop cx
  153. 010D 5B pop bx
  154. 010E 58 pop ax
  155. 010F 89 EC mov sp,bp
  156. 0111 5D pop bp
  157. 0112 C3 ret
  158. 0113 55 push bp
  159. 0114 8B EC mov bp,sp
  160. 0116 50 push ax
  161. 0117 53 push bx
  162. 0118 57 push di
  163. 0119 E8 52 00 call 16eh
  164. 011C 88 C2 mov dl,al
  165. 011E 8B 7E 04 mov di,word ptr [bp+4h]
  166. 0121 88 15 mov byte ptr [di],dl
  167. 0123 5F pop di
  168. 0124 5B pop bx
  169. 0125 58 pop ax
  170. 0126 89 EC mov sp,bp
  171. 0128 5D pop bp
  172. 0129 C3 ret
  173. 012A 55 push bp
  174. 012B 8B EC mov bp,sp
  175. 012D 50 push ax
  176. 012E 53 push bx
  177. 012F 51 push cx
  178. 0130 57 push di
  179. 0131 E8 3A 00 call 16eh
  180. 0134 31 C9 xor cx,cx
  181. 0136 3C 54 cmp al,54h
  182. 0138 74 12 je 14ch
  183. 013A 3C 74 cmp al,74h
  184. 013C 74 0E je 14ch
  185. 013E 3C 59 cmp al,59h
  186. 0140 74 0A je 14ch
  187. 0142 3C 79 cmp al,79h
  188. 0144 74 06 je 14ch
  189. 0146 3C 31 cmp al,31h
  190. 0148 74 02 je 14ch
  191. 014A EB 01 jmp 14dh
  192. 014C 41 inc cx
  193. 014D 8B 7E 04 mov di,word ptr [bp+4h]
  194. 0150 89 0D mov word ptr [di],cx
  195. 0152 5F pop di
  196. 0153 59 pop cx
  197. 0154 5B pop bx
  198. 0155 58 pop ax
  199. 0156 89 EC mov sp,bp
  200. 0158 5D pop bp
  201. 0159 C3 ret
  202. 015A 50 push ax
  203. 015B E8 10 00 call 16eh
  204. 015E 3C 0D cmp al,0dh
  205. 0160 74 0A je 16ch
  206. 0162 3C 0A cmp al,0ah
  207. 0164 74 06 je 16ch
  208. 0166 3C 1A cmp al,1ah
  209. 0168 74 02 je 16ch
  210. 016A EB EF jmp 15bh
  211. 016C 58 pop ax
  212. 016D C3 ret
  213. 016E 8B 1E AD 02 mov bx,word ptr [2adh]
  214. 0172 83 FB 00 cmp bx,0h
  215. 0175 74 09 je 180h
  216. 0177 8A C3 mov al,bl
  217. 0179 31 DB xor bx,bx
  218. 017B 89 1E AD 02 mov word ptr [2adh],bx
  219. 017F C3 ret
  220. 0180 B4 08 mov ah,8h
  221. 0182 CD 21 int 21h
  222. 0184 C3 ret
  223. 0185 88 C2 mov dl,al
  224. 0187 BB 01 00 mov bx,1h
  225. 018A 8A DA mov bl,dl
  226. 018C 89 1E AD 02 mov word ptr [2adh],bx
  227. 0190 C3 ret