From mboxrd@z Thu Jan 1 00:00:00 1970 From: brad@heeltoe.com (Brad Parker) Date: Wed, 21 May 2008 10:05:51 -0400 Subject: [Unix-jun72] status on disassembler In-Reply-To: <20080521074439.9D3575A52C@remarque.org> References: <20080521074439.9D3575A52C@remarque.org> Message-ID: <31370.1211378751@mini> Here's an example from 'ls'. It's not ment to be good dis-assembly, just a rough approximation, but it shows references and how the short spans get used to assign labels. ps: I'm not trying to write a disassembler. This is from a binary code recompilation hobby project. It just happened that there was enough info already in the code to figure out where the labels might go. I'm happy to share the code if this would be helpful. -brad ... 004374: span 4346 - 4376 004416: span 4410 - 4532 004436: span 4436 - 4446 004454: span 4434 - 4454 004456: span 4456 - 4476 ... local 4374; 1 (4346-4376) assign1 4376; 1 assign1 4410; 0 assign1 4424; 0 assign1 4434; 0 local 4436; 1 (4436-4446) assign1 4446; 2 assign1 4452; 1 local 4454; 1 (4434-4454) local 4456; 0 (4456-4476) assign1 4476; 1 ... 004374: L1 2 004376 2 004346 004376: 1 004374 004410: 1 004416 004416: L2318 2 004532 2 004524 2 004452 2 004410 004424: 1 004602 004434: 1 004454 004436: L2 2 004446 004446: 1 004436 004452: 1 004416 004454: L1 2 004434 004456: L1 2 004476 004476: 1 004456 ... 12 004370 000000 HALT R5 12 004372 000207 RTS R5 1: 12 -> 004374 112423 MOVB R4 R3 13 004376 001376 BNE R3 ; (ref 4374, 1b) 13 004400 005303 DEC R3 13 004402 126327 CPMB R3 R7 177777 004406 000057 ? 14 004410 001402 BEQ R7 ; (ref 4416, L2318) 14 004412 112723 MOVB R7 R3 000057 L2318: 14 -> 004416 004567 JSR R7 002722 14 004422 044052 BIC R0 R2 15 004424 103466 BLO R2 ; (ref 4602, L2434) 15 004426 012746 MOV R7 R6 000004 15 004432 005700 TST R0 16 004434 001007 BNE R0 ; (ref 4454, 1f) 2: 16 -> 004436 004567 JSR R7 002702 16 004442 044052 BIC R0 R2 16 004444 005316 DEC R6 17 004446 001373 BNE R6 ; (ref 4436, 2b) 17 004450 005726 TST R6 18 004452 000761 BR R6 ; (ref 4416, L2318) 1: 17 -> 004454 010302 MOV R3 R2 1: 17 -> 004456 004567 JSR R7 002662 17 004462 044052 BIC R0 R2 17 004464 010021 MOV R0 R1 17 004466 110022 MOVB R0 R2 17 004470 000300 SWAB R0 17 004472 110022 MOVB R0 R2 17 004474 005316 DEC R6 18 004476 001367 BNE R6 ; (ref 4456, 1b) 18 004500 005726 TST R6 18 004502 105022 CLRB R2 18 004504 005767 TST R7 003232