# 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 BA 02 mov bx,2bah 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 8A 46 04 mov al,byte ptr [bp+4h] 0067 89 EC mov sp,bp 0069 5D pop bp 006A B4 02 mov ah,2h 006C CD 21 int 21h 006E C3 ret 006F 55 push bp 0070 8B EC mov bp,sp 0072 83 7E 04 00 cmp word ptr [bp+4h],0h 0076 89 EC mov sp,bp 0078 75 05 jne 7fh 007A BA BF 02 mov dx,2bfh 007D EB 03 jmp 82h 007F BA BA 02 mov dx,2bah 0082 B4 09 mov ah,9h 0084 CD 21 int 21h 0086 5D pop bp 0087 C3 ret 0088 BA C8 02 mov dx,2c8h 008B B4 09 mov ah,9h 008D CD 21 int 21h 008F C3 ret 0090 BA C5 02 mov dx,2c5h 0093 B4 09 mov ah,9h 0095 CD 21 int 21h 0097 C3 ret 0098 5B pop bx 0099 31 C9 xor cx,cx 009B 8A 0F mov cl,byte ptr [bx] 009D 43 inc bx 009E B4 02 mov ah,2h 00A0 E3 07 jcxz 0a9h 00A2 8A 07 mov al,byte ptr [bx] 00A4 CD 21 int 21h 00A6 43 inc bx 00A7 E2 F9 loop 0a2h 00A9 FF E3 jmp bx 00AB 55 push bp 00AC 8B EC mov bp,sp 00AE 50 push ax 00AF 53 push bx 00B0 51 push cx 00B1 52 push dx 00B2 57 push di 00B3 E8 13 00 call 0c9h 00B6 83 F9 02 cmp cx,2h 00B9 74 05 je 0c0h 00BB 8B 7E 04 mov di,word ptr [bp+4h] 00BE 89 05 mov word ptr [di],ax 00C0 5F pop di 00C1 5A pop dx 00C2 59 pop cx 00C3 5B pop bx 00C4 58 pop ax 00C5 89 EC mov sp,bp 00C7 5D pop bp 00C8 C3 ret 00C9 E8 C3 00 call 18fh 00CC 3C 1A cmp al,1ah 00CE 74 42 je 112h 00D0 3C 20 cmp al,20h 00D2 76 F5 jbe 0c9h 00D4 31 C9 xor cx,cx 00D6 3C 2D cmp al,2dh 00D8 75 06 jne 0e0h 00DA 41 inc cx 00DB E8 B1 00 call 18fh 00DE EB 07 jmp 0e7h 00E0 3C 2B cmp al,2bh 00E2 75 03 jne 0e7h 00E4 E8 A8 00 call 18fh 00E7 31 FF xor di,di 00E9 3C 30 cmp al,30h 00EB 72 18 jb 105h 00ED 3C 39 cmp al,39h 00EF 77 14 jnbe 105h 00F1 2C 30 sub al,30h 00F3 B4 00 mov ah,0h 00F5 87 C7 xchg di,ax 00F7 BB 0A 00 mov bx,0ah 00FA F7 E3 mul bx 00FC 03 C7 add ax,di 00FE 89 C7 mov di,ax 0100 E8 8C 00 call 18fh 0103 EB E4 jmp 0e9h 0105 E8 9E 00 call 1a6h 0108 83 F9 00 cmp cx,0h 010B 74 02 je 10fh 010D F7 DF neg di 010F 8B C7 mov ax,di 0111 C3 ret 0112 B9 02 00 mov cx,2h 0115 C3 ret 0116 55 push bp 0117 8B EC mov bp,sp 0119 50 push ax 011A 53 push bx 011B 51 push cx 011C 52 push dx 011D 57 push di 011E E8 A8 FF call 0c9h 0121 83 F9 02 cmp cx,2h 0124 74 05 je 12bh 0126 8B 7E 04 mov di,word ptr [bp+4h] 0129 88 05 mov byte ptr [di],al 012B 5F pop di 012C 5A pop dx 012D 59 pop cx 012E 5B pop bx 012F 58 pop ax 0130 89 EC mov sp,bp 0132 5D pop bp 0133 C3 ret 0134 55 push bp 0135 8B EC mov bp,sp 0137 50 push ax 0138 53 push bx 0139 57 push di 013A E8 52 00 call 18fh 013D 88 C2 mov dl,al 013F 8B 7E 04 mov di,word ptr [bp+4h] 0142 88 15 mov byte ptr [di],dl 0144 5F pop di 0145 5B pop bx 0146 58 pop ax 0147 89 EC mov sp,bp 0149 5D pop bp 014A C3 ret 014B 55 push bp 014C 8B EC mov bp,sp 014E 50 push ax 014F 53 push bx 0150 51 push cx 0151 57 push di 0152 E8 3A 00 call 18fh 0155 31 C9 xor cx,cx 0157 3C 54 cmp al,54h 0159 74 12 je 16dh 015B 3C 74 cmp al,74h 015D 74 0E je 16dh 015F 3C 59 cmp al,59h 0161 74 0A je 16dh 0163 3C 79 cmp al,79h 0165 74 06 je 16dh 0167 3C 31 cmp al,31h 0169 74 02 je 16dh 016B EB 01 jmp 16eh 016D 41 inc cx 016E 8B 7E 04 mov di,word ptr [bp+4h] 0171 89 0D mov word ptr [di],cx 0173 5F pop di 0174 59 pop cx 0175 5B pop bx 0176 58 pop ax 0177 89 EC mov sp,bp 0179 5D pop bp 017A C3 ret 017B 50 push ax 017C E8 10 00 call 18fh 017F 3C 0D cmp al,0dh 0181 74 0A je 18dh 0183 3C 0A cmp al,0ah 0185 74 06 je 18dh 0187 3C 1A cmp al,1ah 0189 74 02 je 18dh 018B EB EF jmp 17ch 018D 58 pop ax 018E C3 ret 018F 8B 1E CE 02 mov bx,word ptr [2ceh] 0193 83 FB 00 cmp bx,0h 0196 74 09 je 1a1h 0198 8A C3 mov al,bl 019A 31 DB xor bx,bx 019C 89 1E CE 02 mov word ptr [2ceh],bx 01A0 C3 ret 01A1 B4 08 mov ah,8h 01A3 CD 21 int 21h 01A5 C3 ret 01A6 88 C2 mov dl,al 01A8 BB 01 00 mov bx,1h 01AB 8A DA mov bl,dl 01AD 89 1E CE 02 mov word ptr [2ceh],bx 01B1 C3 ret