# runtime.golden -- full FCML disassembly of the runtime's code region. # # GENERATED by tests/check_runtime.py --bless, then READ THE DIFF and commit. # Every line is "OFFSET BYTES MNEMONIC". This file is a deliberate # tripwire: any edit to Runtime.mod invalidates it, because inserting an # instruction renumbers everything after it, so you are forced to look at the # whole new listing and confirm you meant every change. See the "Re-baselining # the golden" section of check_runtime.py. # # Region: bytes 0..codeEnd of the runtime image (see the code/data split in # EmitData). Relative targets are absolute offsets within the runtime, which # the compiler adds to the runtime's load address when it emits a CALL. 0000 8B F0 mov si,ax 0002 8B 54 04 mov dx,word ptr [si+4h] 0005 8B 4C 06 mov cx,word ptr [si+6h] 0008 39 D1 cmp cx,dx 000A 76 0D jbe 19h 000C 89 D7 mov di,dx 000E 31 C0 xor ax,ax 0010 89 05 mov word ptr [di],ax 0012 83 C7 02 add di,2h 0015 39 CF cmp di,cx 0017 72 F5 jb 0eh 0019 1E push ds 001A 07 pop es 001B C3 ret 001C 31 C0 xor ax,ax 001E B4 4C mov ah,4ch 0020 CD 21 int 21h 0022 C3 ret 0023 C3 ret 0024 55 push bp 0025 8B EC mov bp,sp 0027 8B 46 04 mov ax,word ptr [bp+4h] 002A 83 F8 00 cmp ax,0h 002D 7D 0A jnl 39h 002F 50 push ax 0030 B0 2D mov al,2dh 0032 B4 02 mov ah,2h 0034 CD 21 int 21h 0036 58 pop ax 0037 F7 D8 neg ax 0039 B9 0A 00 mov cx,0ah 003C BB 57 04 mov bx,457h 003F 89 DE mov si,bx 0041 31 D2 xor dx,dx 0043 F7 F1 div ax,cx 0045 80 C2 30 add dl,30h 0048 4E dec si 0049 88 14 mov byte ptr [si],dl 004B 83 F8 00 cmp ax,0h 004E 75 F1 jne 41h 0050 39 DE cmp si,bx 0052 74 09 je 5dh 0054 8A 04 mov al,byte ptr [si] 0056 B4 02 mov ah,2h 0058 CD 21 int 21h 005A 46 inc si 005B EB F3 jmp 50h 005D 89 EC mov sp,bp 005F 5D pop bp 0060 C3 ret 0061 55 push bp 0062 8B EC mov bp,sp 0064 BB 00 00 mov bx,0h 0067 8B 46 06 mov ax,word ptr [bp+6h] 006A 83 F8 00 cmp ax,0h 006D 7D 03 jnl 72h 006F 43 inc bx 0070 F7 D8 neg ax 0072 B9 0A 00 mov cx,0ah 0075 43 inc bx 0076 31 D2 xor dx,dx 0078 F7 F1 div ax,cx 007A 83 F8 00 cmp ax,0h 007D 75 F6 jne 75h 007F 8B 46 04 mov ax,word ptr [bp+4h] 0082 2B C3 sub ax,bx 0084 83 F8 00 cmp ax,0h 0087 7E 0A jle 93h 0089 89 C1 mov cx,ax 008B B0 20 mov al,20h 008D B4 02 mov ah,2h 008F CD 21 int 21h 0091 E2 F8 loop 8bh 0093 8B 46 06 mov ax,word ptr [bp+6h] 0096 83 F8 00 cmp ax,0h 0099 7D 0A jnl 0a5h 009B 50 push ax 009C B0 2D mov al,2dh 009E B4 02 mov ah,2h 00A0 CD 21 int 21h 00A2 58 pop ax 00A3 F7 D8 neg ax 00A5 B9 0A 00 mov cx,0ah 00A8 BB 57 04 mov bx,457h 00AB 89 DE mov si,bx 00AD 31 D2 xor dx,dx 00AF F7 F1 div ax,cx 00B1 80 C2 30 add dl,30h 00B4 4E dec si 00B5 88 14 mov byte ptr [si],dl 00B7 83 F8 00 cmp ax,0h 00BA 75 F1 jne 0adh 00BC 39 DE cmp si,bx 00BE 74 09 je 0c9h 00C0 8A 04 mov al,byte ptr [si] 00C2 B4 02 mov ah,2h 00C4 CD 21 int 21h 00C6 46 inc si 00C7 EB F3 jmp 0bch 00C9 89 EC mov sp,bp 00CB 5D pop bp 00CC C3 ret 00CD 55 push bp 00CE 8B EC mov bp,sp 00D0 8A 46 04 mov al,byte ptr [bp+4h] 00D3 89 EC mov sp,bp 00D5 5D pop bp 00D6 B4 02 mov ah,2h 00D8 CD 21 int 21h 00DA C3 ret 00DB 55 push bp 00DC 8B EC mov bp,sp 00DE 83 7E 04 00 cmp word ptr [bp+4h],0h 00E2 89 EC mov sp,bp 00E4 75 05 jne 0ebh 00E6 BA 5C 04 mov dx,45ch 00E9 EB 03 jmp 0eeh 00EB BA 57 04 mov dx,457h 00EE B4 09 mov ah,9h 00F0 CD 21 int 21h 00F2 5D pop bp 00F3 C3 ret 00F4 BA 65 04 mov dx,465h 00F7 B4 09 mov ah,9h 00F9 CD 21 int 21h 00FB C3 ret 00FC BA 62 04 mov dx,462h 00FF B4 09 mov ah,9h 0101 CD 21 int 21h 0103 C3 ret 0104 5B pop bx 0105 31 C9 xor cx,cx 0107 8A 0F mov cl,byte ptr [bx] 0109 43 inc bx 010A B4 02 mov ah,2h 010C E3 07 jcxz 115h 010E 8A 07 mov al,byte ptr [bx] 0110 CD 21 int 21h 0112 43 inc bx 0113 E2 F9 loop 10eh 0115 FF E3 jmp bx 0117 55 push bp 0118 8B EC mov bp,sp 011A 53 push bx 011B 51 push cx 011C 50 push ax 011D 8B 5E 04 mov bx,word ptr [bp+4h] 0120 31 C9 xor cx,cx 0122 8A 0F mov cl,byte ptr [bx] 0124 43 inc bx 0125 B4 02 mov ah,2h 0127 E3 07 jcxz 130h 0129 8A 07 mov al,byte ptr [bx] 012B CD 21 int 21h 012D 43 inc bx 012E E2 F9 loop 129h 0130 58 pop ax 0131 59 pop cx 0132 5B pop bx 0133 89 EC mov sp,bp 0135 5D pop bp 0136 C3 ret 0137 55 push bp 0138 8B EC mov bp,sp 013A 50 push ax 013B 53 push bx 013C 51 push cx 013D 52 push dx 013E 57 push di 013F E8 13 00 call 155h 0142 83 F9 02 cmp cx,2h 0145 74 05 je 14ch 0147 8B 7E 04 mov di,word ptr [bp+4h] 014A 89 05 mov word ptr [di],ax 014C 5F pop di 014D 5A pop dx 014E 59 pop cx 014F 5B pop bx 0150 58 pop ax 0151 89 EC mov sp,bp 0153 5D pop bp 0154 C3 ret 0155 E8 C3 00 call 21bh 0158 3C 1A cmp al,1ah 015A 74 42 je 19eh 015C 3C 20 cmp al,20h 015E 76 F5 jbe 155h 0160 31 C9 xor cx,cx 0162 3C 2D cmp al,2dh 0164 75 06 jne 16ch 0166 41 inc cx 0167 E8 B1 00 call 21bh 016A EB 07 jmp 173h 016C 3C 2B cmp al,2bh 016E 75 03 jne 173h 0170 E8 A8 00 call 21bh 0173 31 FF xor di,di 0175 3C 30 cmp al,30h 0177 72 18 jb 191h 0179 3C 39 cmp al,39h 017B 77 14 jnbe 191h 017D 2C 30 sub al,30h 017F B4 00 mov ah,0h 0181 87 C7 xchg di,ax 0183 BB 0A 00 mov bx,0ah 0186 F7 E3 mul bx 0188 03 C7 add ax,di 018A 89 C7 mov di,ax 018C E8 8C 00 call 21bh 018F EB E4 jmp 175h 0191 E8 9E 00 call 232h 0194 83 F9 00 cmp cx,0h 0197 74 02 je 19bh 0199 F7 DF neg di 019B 8B C7 mov ax,di 019D C3 ret 019E B9 02 00 mov cx,2h 01A1 C3 ret 01A2 55 push bp 01A3 8B EC mov bp,sp 01A5 50 push ax 01A6 53 push bx 01A7 51 push cx 01A8 52 push dx 01A9 57 push di 01AA E8 A8 FF call 155h 01AD 83 F9 02 cmp cx,2h 01B0 74 05 je 1b7h 01B2 8B 7E 04 mov di,word ptr [bp+4h] 01B5 88 05 mov byte ptr [di],al 01B7 5F pop di 01B8 5A pop dx 01B9 59 pop cx 01BA 5B pop bx 01BB 58 pop ax 01BC 89 EC mov sp,bp 01BE 5D pop bp 01BF C3 ret 01C0 55 push bp 01C1 8B EC mov bp,sp 01C3 50 push ax 01C4 53 push bx 01C5 57 push di 01C6 E8 52 00 call 21bh 01C9 88 C2 mov dl,al 01CB 8B 7E 04 mov di,word ptr [bp+4h] 01CE 88 15 mov byte ptr [di],dl 01D0 5F pop di 01D1 5B pop bx 01D2 58 pop ax 01D3 89 EC mov sp,bp 01D5 5D pop bp 01D6 C3 ret 01D7 55 push bp 01D8 8B EC mov bp,sp 01DA 50 push ax 01DB 53 push bx 01DC 51 push cx 01DD 57 push di 01DE E8 3A 00 call 21bh 01E1 31 C9 xor cx,cx 01E3 3C 54 cmp al,54h 01E5 74 12 je 1f9h 01E7 3C 74 cmp al,74h 01E9 74 0E je 1f9h 01EB 3C 59 cmp al,59h 01ED 74 0A je 1f9h 01EF 3C 79 cmp al,79h 01F1 74 06 je 1f9h 01F3 3C 31 cmp al,31h 01F5 74 02 je 1f9h 01F7 EB 01 jmp 1fah 01F9 41 inc cx 01FA 8B 7E 04 mov di,word ptr [bp+4h] 01FD 89 0D mov word ptr [di],cx 01FF 5F pop di 0200 59 pop cx 0201 5B pop bx 0202 58 pop ax 0203 89 EC mov sp,bp 0205 5D pop bp 0206 C3 ret 0207 50 push ax 0208 E8 10 00 call 21bh 020B 3C 0D cmp al,0dh 020D 74 0A je 219h 020F 3C 0A cmp al,0ah 0211 74 06 je 219h 0213 3C 1A cmp al,1ah 0215 74 02 je 219h 0217 EB EF jmp 208h 0219 58 pop ax 021A C3 ret 021B 8B 1E 6B 04 mov bx,word ptr [46bh] 021F 83 FB 00 cmp bx,0h 0222 74 09 je 22dh 0224 8A C3 mov al,bl 0226 31 DB xor bx,bx 0228 89 1E 6B 04 mov word ptr [46bh],bx 022C C3 ret 022D B4 08 mov ah,8h 022F CD 21 int 21h 0231 C3 ret 0232 88 C2 mov dl,al 0234 BB 01 00 mov bx,1h 0237 8A DA mov bl,dl 0239 89 1E 6B 04 mov word ptr [46bh],bx 023D C3 ret 023E 55 push bp 023F 8B EC mov bp,sp 0241 50 push ax 0242 53 push bx 0243 51 push cx 0244 52 push dx 0245 57 push di 0246 8B 7E 04 mov di,word ptr [bp+4h] 0249 8B 46 04 mov ax,word ptr [bp+4h] 024C 8B F0 mov si,ax 024E 46 inc si 024F 31 DB xor bx,bx 0251 53 push bx 0252 E8 C6 FF call 21bh 0255 5B pop bx 0256 3C 0D cmp al,0dh 0258 74 1D je 277h 025A 3C 0A cmp al,0ah 025C 74 19 je 277h 025E 3C 1A cmp al,1ah 0260 74 15 je 277h 0262 88 C2 mov dl,al 0264 43 inc bx 0265 88 14 mov byte ptr [si],dl 0267 46 inc si 0268 E2 E7 loop 251h 026A 8A C3 mov al,bl 026C 88 05 mov byte ptr [di],al 026E 5F pop di 026F 5A pop dx 0270 59 pop cx 0271 5B pop bx 0272 58 pop ax 0273 89 EC mov sp,bp 0275 5D pop bp 0276 C3 ret 0277 53 push bx 0278 E8 B7 FF call 232h 027B 5B pop bx 027C EB EC jmp 26ah 027E 55 push bp 027F 8B EC mov bp,sp 0281 50 push ax 0282 53 push bx 0283 51 push cx 0284 52 push dx 0285 8B 46 04 mov ax,word ptr [bp+4h] 0288 8B F0 mov si,ax 028A 8B 5E 06 mov bx,word ptr [bp+6h] 028D 31 D2 xor dx,dx 028F 8A 07 mov al,byte ptr [bx] 0291 88 C2 mov dl,al 0293 43 inc bx 0294 39 D1 cmp cx,dx 0296 72 04 jb 29ch 0298 8B CA mov cx,dx 029A EB 02 jmp 29eh 029C 8A D1 mov dl,cl 029E 88 14 mov byte ptr [si],dl 02A0 46 inc si 02A1 E3 0A jcxz 2adh 02A3 8A 07 mov al,byte ptr [bx] 02A5 88 C2 mov dl,al 02A7 88 14 mov byte ptr [si],dl 02A9 43 inc bx 02AA 46 inc si 02AB E2 F6 loop 2a3h 02AD 5A pop dx 02AE 59 pop cx 02AF 5B pop bx 02B0 58 pop ax 02B1 89 EC mov sp,bp 02B3 5D pop bp 02B4 C3 ret 02B5 55 push bp 02B6 8B EC mov bp,sp 02B8 53 push bx 02B9 51 push cx 02BA 52 push dx 02BB 31 C9 xor cx,cx 02BD 31 D2 xor dx,dx 02BF 8B 5E 06 mov bx,word ptr [bp+6h] 02C2 8A 0F mov cl,byte ptr [bx] 02C4 8B 46 04 mov ax,word ptr [bp+4h] 02C7 8B F0 mov si,ax 02C9 8A 14 mov dl,byte ptr [si] 02CB 39 D1 cmp cx,dx 02CD 76 02 jbe 2d1h 02CF 8B CA mov cx,dx 02D1 E3 0E jcxz 2e1h 02D3 43 inc bx 02D4 46 inc si 02D5 8A 07 mov al,byte ptr [bx] 02D7 8A 14 mov dl,byte ptr [si] 02D9 3A C2 cmp al,dl 02DB 75 14 jne 2f1h 02DD 43 inc bx 02DE 46 inc si 02DF E2 F4 loop 2d5h 02E1 8B 5E 06 mov bx,word ptr [bp+6h] 02E4 8A 0F mov cl,byte ptr [bx] 02E6 8B 46 04 mov ax,word ptr [bp+4h] 02E9 8B F0 mov si,ax 02EB 31 D2 xor dx,dx 02ED 8A 14 mov dl,byte ptr [si] 02EF 39 D1 cmp cx,dx 02F1 B0 00 mov al,0h 02F3 B4 00 mov ah,0h 02F5 72 06 jb 2fdh 02F7 74 08 je 301h 02F9 B0 01 mov al,1h 02FB EB 04 jmp 301h 02FD B0 FF mov al,0ffh 02FF B4 FF mov ah,0ffh 0301 5A pop dx 0302 59 pop cx 0303 5B pop bx 0304 89 EC mov sp,bp 0306 5D pop bp 0307 C3 ret 0308 55 push bp 0309 8B EC mov bp,sp 030B 50 push ax 030C 53 push bx 030D 51 push cx 030E 52 push dx 030F 56 push si 0310 57 push di 0311 8B 46 04 mov ax,word ptr [bp+4h] 0314 8B F0 mov si,ax 0316 8B 5E 06 mov bx,word ptr [bp+6h] 0319 31 D2 xor dx,dx 031B 8A 14 mov dl,byte ptr [si] 031D 31 C0 xor ax,ax 031F 8A 07 mov al,byte ptr [bx] 0321 01 C2 add dx,ax 0323 39 D1 cmp cx,dx 0325 73 06 jnb 32dh 0327 B0 10 mov al,10h 0329 B4 4C mov ah,4ch 032B CD 21 int 21h 032D 8B CA mov cx,dx 032F 88 0C mov byte ptr [si],cl 0331 29 C2 sub dx,ax 0333 8B FE mov di,si 0335 47 inc di 0336 01 D7 add di,dx 0338 43 inc bx 0339 89 C1 mov cx,ax 033B E3 08 jcxz 345h 033D 8A 07 mov al,byte ptr [bx] 033F 88 05 mov byte ptr [di],al 0341 43 inc bx 0342 47 inc di 0343 E2 F8 loop 33dh 0345 5F pop di 0346 5E pop si 0347 5A pop dx 0348 59 pop cx 0349 5B pop bx 034A 58 pop ax 034B 89 EC mov sp,bp 034D 5D pop bp 034E C3 ret