Blame | Last modification | View Log | Download
# file opened: relocation_temporary_labels.asm1 0000 ORG $10002 10003 1000 ; first section is not part of relocation table4 1000 1:5 10006 1000 18 FE jr 1B7 1002 20 FC jr nz,1B8 1004 28 FA jr z,1B9 1006 30 F8 jr nc,1B10 1008 38 F6 jr c,1B11 100A12 100A C2 00 10 jp nz,1B13 100D C3 00 10 jp 1B14 1010 CA 00 10 jp z,1B15 1013 D2 00 10 jp nc,1B16 1016 DA 00 10 jp c,1B17 1019 E2 00 10 jp po,1B18 101C EA 00 10 jp pe,1B19 101F F2 00 10 jp p,1B20 1022 FA 00 10 jp m,1B21 102522 1025 C4 00 10 call nz,1B23 1028 CC 00 10 call z,1B24 102B CD 00 10 call 1B25 102E D4 00 10 call nc,1B26 1031 DC 00 10 call c,1B27 1034 E4 00 10 call po,1B28 1037 EC 00 10 call pe,1B29 103A F4 00 10 call p,1B30 103D FC 00 10 call m,1B31 104032 1040 18 3E jr 1F33 1042 20 3C jr nz,1F34 1044 28 3A jr z,1F35 1046 30 38 jr nc,1F36 1048 38 36 jr c,1F37 104A38 104A C2 80 10 jp nz,1F39 104D C3 80 10 jp 1F40 1050 CA 80 10 jp z,1F41 1053 D2 80 10 jp nc,1F42 1056 DA 80 10 jp c,1F43 1059 E2 80 10 jp po,1F44 105C EA 80 10 jp pe,1F45 105F F2 80 10 jp p,1F46 1062 FA 80 10 jp m,1F47 106548 1065 C4 80 10 call nz,1F49 1068 CC 80 10 call z,1F50 106B CD 80 10 call 1F51 106E D4 80 10 call nc,1F52 1071 DC 80 10 call c,1F53 1074 E4 80 10 call po,1F54 1077 EC 80 10 call pe,1F55 107A F4 80 10 call p,1F56 107D FC 80 10 call m,1F57 108058 1080 1:59 108060 1080 ; second section does test relocation61 1080 RELOCATE_START62 108063 1080 ASSERT 2 * relocate_count == relocate_size64 1080 ASSERT 36 == relocate_count65 1080 24 00 dw relocate_count66 1082 48 00 dw relocate_size67 108468 1084 1: ; usage of this label should trigger relocation69 1084 ; relative jumps don't need relocation70 1084 18 FE jr 1B71 1086 20 FC jr nz,1B72 1088 28 FA jr z,1B73 108A 30 F8 jr nc,1B74 108C 38 F6 jr c,1B75 108E ; absolute jumps need relocation76 108E C2 84 10 jp nz,1B77 1091 C3 84 10 jp 1B78 1094 CA 84 10 jp z,1B79 1097 D2 84 10 jp nc,1B80 109A DA 84 10 jp c,1B81 109D E2 84 10 jp po,1B82 10A0 EA 84 10 jp pe,1B83 10A3 F2 84 10 jp p,1B84 10A6 FA 84 10 jp m,1B85 10A9 ; calls need relocation86 10A9 C4 84 10 call nz,1B87 10AC CC 84 10 call z,1B88 10AF CD 84 10 call 1B89 10B2 D4 84 10 call nc,1B90 10B5 DC 84 10 call c,1B91 10B8 E4 84 10 call po,1B92 10BB EC 84 10 call pe,1B93 10BE F4 84 10 call p,1B94 10C1 FC 84 10 call m,1B95 10C4 ; again the same set, but this time using forward temporary label96 10C4 18 3E jr 1F97 10C6 20 3C jr nz,1F98 10C8 28 3A jr z,1F99 10CA 30 38 jr nc,1F100 10CC 38 36 jr c,1F101 10CE102 10CE C2 04 11 jp nz,1F103 10D1 C3 04 11 jp 1F104 10D4 CA 04 11 jp z,1F105 10D7 D2 04 11 jp nc,1F106 10DA DA 04 11 jp c,1F107 10DD E2 04 11 jp po,1F108 10E0 EA 04 11 jp pe,1F109 10E3 F2 04 11 jp p,1F110 10E6 FA 04 11 jp m,1F111 10E9112 10E9 C4 04 11 call nz,1F113 10EC CC 04 11 call z,1F114 10EF CD 04 11 call 1F115 10F2 D4 04 11 call nc,1F116 10F5 DC 04 11 call c,1F117 10F8 E4 04 11 call po,1F118 10FB EC 04 11 call pe,1F119 10FE F4 04 11 call p,1F120 1101 FC 04 11 call m,1F121 1104 1: ; usage of this label should trigger relocation122 1104123 1104 ;; adding missing DJNZ (from the first version of the test)124 1104 22:125 1104 10 FE djnz 22B126 1106 10 00 djnz 22F127 1108 22:128 1108129 1108 ; the relocation table must be after all temporary labels, as those don't manage130 1108 ; to settle down within 3 passes if there's dynamic-size table ahead, and "forward"131 1108 ; labels are referenced132 1108 8F 10 92 10 RELOCATE_TABLE ; should emit the 36 addresses of opcode data132 110C 95 10 98 10132 1110 9B 10 9E 10132 1114 A1 10 A4 10132 1118 A7 10 AA 10132 111C AD 10 B0 10132 1120 B3 10 B6 10132 1124 B9 10 BC 10132 1128 BF 10 C2 10132 112C CF 10 D2 10132 1130 D5 10 D8 10132 1134 DB 10 DE 10132 1138 E1 10 E4 10132 113C E7 10 EA 10132 1140 ED 10 F0 10132 1144 F3 10 F6 10132 1148 F9 10 FC 10132 114C FF 10 02 11133 1150134 1150 RELOCATE_END135 1150136 1150 ;; adding missing DJNZ outside of relocation block137 1150 22:138 1150 10 FE djnz 22B139 1152 10 00 djnz 22F140 1154 22:141 1154# file closed: relocation_temporary_labels.asmValue Label------ - -----------------------------------------------------------0x0024 relocate_count0x0048 relocate_size