| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268 |
- # 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 DA 02 mov bx,2dah
- 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 DF 02 mov dx,2dfh
- 007D EB 03 jmp 82h
- 007F BA DA 02 mov dx,2dah
- 0082 B4 09 mov ah,9h
- 0084 CD 21 int 21h
- 0086 5D pop bp
- 0087 C3 ret
- 0088 BA E8 02 mov dx,2e8h
- 008B B4 09 mov ah,9h
- 008D CD 21 int 21h
- 008F C3 ret
- 0090 BA E5 02 mov dx,2e5h
- 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 53 push bx
- 00AF 51 push cx
- 00B0 50 push ax
- 00B1 8B 5E 04 mov bx,word ptr [bp+4h]
- 00B4 31 C9 xor cx,cx
- 00B6 8A 0F mov cl,byte ptr [bx]
- 00B8 43 inc bx
- 00B9 B4 02 mov ah,2h
- 00BB E3 07 jcxz 0c4h
- 00BD 8A 07 mov al,byte ptr [bx]
- 00BF CD 21 int 21h
- 00C1 43 inc bx
- 00C2 E2 F9 loop 0bdh
- 00C4 58 pop ax
- 00C5 59 pop cx
- 00C6 5B pop bx
- 00C7 89 EC mov sp,bp
- 00C9 5D pop bp
- 00CA C3 ret
- 00CB 55 push bp
- 00CC 8B EC mov bp,sp
- 00CE 50 push ax
- 00CF 53 push bx
- 00D0 51 push cx
- 00D1 52 push dx
- 00D2 57 push di
- 00D3 E8 13 00 call 0e9h
- 00D6 83 F9 02 cmp cx,2h
- 00D9 74 05 je 0e0h
- 00DB 8B 7E 04 mov di,word ptr [bp+4h]
- 00DE 89 05 mov word ptr [di],ax
- 00E0 5F pop di
- 00E1 5A pop dx
- 00E2 59 pop cx
- 00E3 5B pop bx
- 00E4 58 pop ax
- 00E5 89 EC mov sp,bp
- 00E7 5D pop bp
- 00E8 C3 ret
- 00E9 E8 C3 00 call 1afh
- 00EC 3C 1A cmp al,1ah
- 00EE 74 42 je 132h
- 00F0 3C 20 cmp al,20h
- 00F2 76 F5 jbe 0e9h
- 00F4 31 C9 xor cx,cx
- 00F6 3C 2D cmp al,2dh
- 00F8 75 06 jne 100h
- 00FA 41 inc cx
- 00FB E8 B1 00 call 1afh
- 00FE EB 07 jmp 107h
- 0100 3C 2B cmp al,2bh
- 0102 75 03 jne 107h
- 0104 E8 A8 00 call 1afh
- 0107 31 FF xor di,di
- 0109 3C 30 cmp al,30h
- 010B 72 18 jb 125h
- 010D 3C 39 cmp al,39h
- 010F 77 14 jnbe 125h
- 0111 2C 30 sub al,30h
- 0113 B4 00 mov ah,0h
- 0115 87 C7 xchg di,ax
- 0117 BB 0A 00 mov bx,0ah
- 011A F7 E3 mul bx
- 011C 03 C7 add ax,di
- 011E 89 C7 mov di,ax
- 0120 E8 8C 00 call 1afh
- 0123 EB E4 jmp 109h
- 0125 E8 9E 00 call 1c6h
- 0128 83 F9 00 cmp cx,0h
- 012B 74 02 je 12fh
- 012D F7 DF neg di
- 012F 8B C7 mov ax,di
- 0131 C3 ret
- 0132 B9 02 00 mov cx,2h
- 0135 C3 ret
- 0136 55 push bp
- 0137 8B EC mov bp,sp
- 0139 50 push ax
- 013A 53 push bx
- 013B 51 push cx
- 013C 52 push dx
- 013D 57 push di
- 013E E8 A8 FF call 0e9h
- 0141 83 F9 02 cmp cx,2h
- 0144 74 05 je 14bh
- 0146 8B 7E 04 mov di,word ptr [bp+4h]
- 0149 88 05 mov byte ptr [di],al
- 014B 5F pop di
- 014C 5A pop dx
- 014D 59 pop cx
- 014E 5B pop bx
- 014F 58 pop ax
- 0150 89 EC mov sp,bp
- 0152 5D pop bp
- 0153 C3 ret
- 0154 55 push bp
- 0155 8B EC mov bp,sp
- 0157 50 push ax
- 0158 53 push bx
- 0159 57 push di
- 015A E8 52 00 call 1afh
- 015D 88 C2 mov dl,al
- 015F 8B 7E 04 mov di,word ptr [bp+4h]
- 0162 88 15 mov byte ptr [di],dl
- 0164 5F pop di
- 0165 5B pop bx
- 0166 58 pop ax
- 0167 89 EC mov sp,bp
- 0169 5D pop bp
- 016A C3 ret
- 016B 55 push bp
- 016C 8B EC mov bp,sp
- 016E 50 push ax
- 016F 53 push bx
- 0170 51 push cx
- 0171 57 push di
- 0172 E8 3A 00 call 1afh
- 0175 31 C9 xor cx,cx
- 0177 3C 54 cmp al,54h
- 0179 74 12 je 18dh
- 017B 3C 74 cmp al,74h
- 017D 74 0E je 18dh
- 017F 3C 59 cmp al,59h
- 0181 74 0A je 18dh
- 0183 3C 79 cmp al,79h
- 0185 74 06 je 18dh
- 0187 3C 31 cmp al,31h
- 0189 74 02 je 18dh
- 018B EB 01 jmp 18eh
- 018D 41 inc cx
- 018E 8B 7E 04 mov di,word ptr [bp+4h]
- 0191 89 0D mov word ptr [di],cx
- 0193 5F pop di
- 0194 59 pop cx
- 0195 5B pop bx
- 0196 58 pop ax
- 0197 89 EC mov sp,bp
- 0199 5D pop bp
- 019A C3 ret
- 019B 50 push ax
- 019C E8 10 00 call 1afh
- 019F 3C 0D cmp al,0dh
- 01A1 74 0A je 1adh
- 01A3 3C 0A cmp al,0ah
- 01A5 74 06 je 1adh
- 01A7 3C 1A cmp al,1ah
- 01A9 74 02 je 1adh
- 01AB EB EF jmp 19ch
- 01AD 58 pop ax
- 01AE C3 ret
- 01AF 8B 1E EE 02 mov bx,word ptr [2eeh]
- 01B3 83 FB 00 cmp bx,0h
- 01B6 74 09 je 1c1h
- 01B8 8A C3 mov al,bl
- 01BA 31 DB xor bx,bx
- 01BC 89 1E EE 02 mov word ptr [2eeh],bx
- 01C0 C3 ret
- 01C1 B4 08 mov ah,8h
- 01C3 CD 21 int 21h
- 01C5 C3 ret
- 01C6 88 C2 mov dl,al
- 01C8 BB 01 00 mov bx,1h
- 01CB 8A DA mov bl,dl
- 01CD 89 1E EE 02 mov word ptr [2eeh],bx
- 01D1 C3 ret
|