| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205 |
- # 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 B2 2D mov dl,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 70 01 mov bx,170h
- 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 14 mov dl,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 8B EC mov bp,sp
- 0063 8A 56 02 mov dl,byte ptr [bp+2h]
- 0066 89 EC mov sp,bp
- 0068 B4 02 mov ah,2h
- 006A CD 21 int 21h
- 006C C3 ret
- 006D 8B EC mov bp,sp
- 006F 83 7E 02 00 cmp word ptr [bp+2h],0h
- 0073 89 EC mov sp,bp
- 0075 75 05 jne 7ch
- 0077 BA 76 01 mov dx,176h
- 007A EB 03 jmp 7fh
- 007C BA 70 01 mov dx,170h
- 007F B4 09 mov ah,9h
- 0081 CD 21 int 21h
- 0083 C3 ret
- 0084 BA 80 01 mov dx,180h
- 0087 B4 09 mov ah,9h
- 0089 CD 21 int 21h
- 008B C3 ret
- 008C BA 7D 01 mov dx,17dh
- 008F B4 09 mov ah,9h
- 0091 CD 21 int 21h
- 0093 C3 ret
- 0094 5B pop bx
- 0095 31 C9 xor cx,cx
- 0097 8A 0F mov cl,byte ptr [bx]
- 0099 43 inc bx
- 009A B4 02 mov ah,2h
- 009C E3 07 jcxz 0a5h
- 009E 8A 07 mov al,byte ptr [bx]
- 00A0 CD 21 int 21h
- 00A2 43 inc bx
- 00A3 E2 F9 loop 9eh
- 00A5 FF E3 jmp bx
- 00A7 55 push bp
- 00A8 8B EC mov bp,sp
- 00AA 50 push ax
- 00AB 53 push bx
- 00AC 51 push cx
- 00AD 52 push dx
- 00AE 57 push di
- 00AF E8 B1 00 call 163h
- 00B2 3C 20 cmp al,20h
- 00B4 74 F9 je 0afh
- 00B6 3C 09 cmp al,9h
- 00B8 74 F5 je 0afh
- 00BA 3C 0D cmp al,0dh
- 00BC 74 F1 je 0afh
- 00BE 3C 0A cmp al,0ah
- 00C0 74 ED je 0afh
- 00C2 31 C9 xor cx,cx
- 00C4 3C 2D cmp al,2dh
- 00C6 75 06 jne 0ceh
- 00C8 41 inc cx
- 00C9 E8 97 00 call 163h
- 00CC EB 07 jmp 0d5h
- 00CE 3C 2B cmp al,2bh
- 00D0 75 03 jne 0d5h
- 00D2 E8 8E 00 call 163h
- 00D5 31 FF xor di,di
- 00D7 3C 30 cmp al,30h
- 00D9 72 1C jb 0f7h
- 00DB 3C 39 cmp al,39h
- 00DD 77 18 jnbe 0f7h
- 00DF 2C 30 sub al,30h
- 00E1 88 C6 mov dh,al
- 00E3 8B C7 mov ax,di
- 00E5 BB 0A 00 mov bx,0ah
- 00E8 F7 E3 mul bx
- 00EA 89 C7 mov di,ax
- 00EC B4 00 mov ah,0h
- 00EE 8A C6 mov al,dh
- 00F0 01 C7 add di,ax
- 00F2 E8 6E 00 call 163h
- 00F5 EB E0 jmp 0d7h
- 00F7 83 F9 00 cmp cx,0h
- 00FA 74 02 je 0feh
- 00FC F7 DF neg di
- 00FE 8B 5E 04 mov bx,word ptr [bp+4h]
- 0101 89 1D mov word ptr [di],bx
- 0103 5F pop di
- 0104 5A pop dx
- 0105 59 pop cx
- 0106 5B pop bx
- 0107 58 pop ax
- 0108 89 EC mov sp,bp
- 010A 5D pop bp
- 010B C3 ret
- 010C 55 push bp
- 010D 8B EC mov bp,sp
- 010F 50 push ax
- 0110 53 push bx
- 0111 E8 4F 00 call 163h
- 0114 88 C2 mov dl,al
- 0116 8B 5E 04 mov bx,word ptr [bp+4h]
- 0119 88 17 mov byte ptr [bx],dl
- 011B 5B pop bx
- 011C 58 pop ax
- 011D 89 EC mov sp,bp
- 011F 5D pop bp
- 0120 C3 ret
- 0121 55 push bp
- 0122 8B EC mov bp,sp
- 0124 50 push ax
- 0125 53 push bx
- 0126 51 push cx
- 0127 E8 39 00 call 163h
- 012A 31 C9 xor cx,cx
- 012C 3C 54 cmp al,54h
- 012E 74 12 je 142h
- 0130 3C 74 cmp al,74h
- 0132 74 0E je 142h
- 0134 3C 59 cmp al,59h
- 0136 74 0A je 142h
- 0138 3C 79 cmp al,79h
- 013A 74 06 je 142h
- 013C 3C 31 cmp al,31h
- 013E 74 02 je 142h
- 0140 EB 01 jmp 143h
- 0142 41 inc cx
- 0143 8B 5E 04 mov bx,word ptr [bp+4h]
- 0146 89 0F mov word ptr [bx],cx
- 0148 59 pop cx
- 0149 5B pop bx
- 014A 58 pop ax
- 014B 89 EC mov sp,bp
- 014D 5D pop bp
- 014E C3 ret
- 014F 50 push ax
- 0150 E8 10 00 call 163h
- 0153 3C 0D cmp al,0dh
- 0155 74 0A je 161h
- 0157 3C 0A cmp al,0ah
- 0159 74 06 je 161h
- 015B 3C 1A cmp al,1ah
- 015D 74 02 je 161h
- 015F EB EF jmp 150h
- 0161 58 pop ax
- 0162 C3 ret
- 0163 B4 08 mov ah,8h
- 0165 CD 21 int 21h
- 0167 C3 ret
|