| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247 |
- # 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
|