View Single Post
  #2 (permalink)  
Old 02-08-2007, 01:13 AM
verizonguy's Avatar
verizonguy
Regular 'Geeker
Offline
Location: US
 
Join Date: Feb 2007
Posts: 487
Reputation: 47
verizonguy is becoming a great contributor
Mentioned: 0 Post(s)
Tagged: 0 Thread(s)
Are you trying to disassemble the dlls to view the ASM, colonel?

I can hook you up with the best disassembler out there which will disassemble them for you. You'll need to be able to understand a bit of ASM to make sense of it, but I've seen some of your contributions to the ppc community so I know you have an aptitude for it if you don't already know how :) Shoot me a PM if you'd like a copy for free.

Here is an example, the msvcr80.dll found in the windows directory of the 6700 starts like this when disassembled:

Code:
.text:10001000 ; File Name   : C:\Documents and Settings\User\Desktop\msvcr80.dll
.text:10001000 ; Format      : Portable executable for ARMI (PE)
.text:10001000 ; Imagebase   : 10000000
.text:10001000 ; Section 1. (virtual address 00001000)
.text:10001000 ; Virtual size                  : 00006A1C (  27164.)
.text:10001000 ; Section size in file          : 00006C00 (  27648.)
.text:10001000 ; Offset to raw data for section: 00000400
.text:10001000 ; Flags 60000020: Text Executable Readable
.text:10001000 ; Alignment     : default
.text:10001000
.text:10001000 ; Processor       : ARM
.text:10001000 ; Target assembler: Generic assembler for ARM
.text:10001000 ; Byte sex        : Little endian
.text:10001000
.text:10001000 ; ---------------------------------------------------------------------------
.text:10001000
.text:10001000 ; Segment type: Pure code
.text:10001000                 AREA .text, CODE, READWRITE, ALIGN=4
.text:10001000                 ; ORG 0x10001000
.text:10001000                 CODE32
.text:10001000
.text:10001000 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:10001000
.text:10001000
.text:10001000                 EXPORT start
.text:10001000 start                                   ; DATA XREF: .pdata:1000A000o
.text:10001000                 MOV     R0, #1
.text:10001004                 BX      LR
.text:10001004 ; End of function start
.text:10001004
.text:10001008 ; Exported entry  23. calloc
.text:10001008
.text:10001008 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:10001008
.text:10001008
.text:10001008                 EXPORT calloc
.text:10001008 calloc
.text:10001008                 LDR     R12, =COREDLL_1346
.text:1000100C                 LDR     R12, [R12]
.text:10001010                 BX      R12
.text:10001010 ; End of function calloc
.text:10001010
.text:10001010 ; ---------------------------------------------------------------------------
.text:10001014 off_10001014    DCD COREDLL_1346        ; DATA XREF: callocr
.text:10001018
.text:10001018 ; ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦ S U B R O U T I N E ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦
.text:10001018
.text:10001018
.text:10001018 sub_10001018                            ; CODE XREF: _itoa_s+2Cp
.text:10001018                                         ; _itoa_s+44p ...
.text:10001018
.text:10001018 var_28          = -0x28
.text:10001018 arg_0           =  0
.text:10001018
.text:10001018                 STMFD   SP!, {R4-R11,LR}
.text:1000101C                 SUB     SP, SP, #4
.text:10001020                 MOVS    R7, R1
.text:10001024                 MOV     R1, R0
.text:10001028                 MOV     R9, R3
.text:1000102C                 MOV     R8, R2
.text:10001030                 BNE     loc_10001060
.text:10001034                 MOV     R5, #0
.text:10001038                 LDR     R4, =_invalid_parameter
.text:1000103C                 STR     R5, [SP,#0x28+var_28]
.text:10001040                 MOV     R3, #0
.text:10001044                 MOV     R2, #0
.text:10001048                 MOV     R1, #0
.text:1000104C                 MOV     R0, #0
.text:10001050                 MOV     LR, PC
.text:10001054                 BX      R4
.text:10001058                 MOV     R5, #0x16
.text:1000105C                 B       loc_10001150
.text:10001060 ; ---------------------------------------------------------------------------
.text:10001060
.text:10001060 loc_10001060                            ; CODE XREF: sub_10001018+18j
.text:10001060                 MOV     R11, #0
.text:10001064                 CMP     R8, #0
.text:10001068                 BNE     loc_10001094
.text:1000106C
.text:1000106C loc_1000106C                            ; CODE XREF: sub_10001018+A4j
.text:1000106C                 MOV     R5, #0x16
.text:10001070
.text:10001070 loc_10001070                            ; CODE XREF: sub_10001018+98j
.text:10001070                                         ; sub_10001018+114j
.text:10001070                 LDR     R4, =_invalid_parameter
.text:10001074                 MOV     R3, #0
.text:10001078                 MOV     R2, #0
.text:1000107C                 MOV     R1, #0
.text:10001080                 MOV     R0, #0
.text:10001084                 STR     R11, [SP,#0x28+var_28]
.text:10001088                 MOV     LR, PC
.text:1000108C                 BX      R4
.text:10001090                 B       loc_10001150
.text:10001094 ; ---------------------------------------------------------------------------
.text:10001094
.text:10001094 loc_10001094                            ; CODE XREF: sub_10001018+50j
.text:10001094                 LDR     R2, [SP,#0x28+arg_0]
.text:10001098                 STRB    R11, [R7]
.text:1000109C                 CMP     R2, #0
.text:100010A0                 MOVNE   R3, #2
.text:100010A4                 MOVEQ   R3, #1
.text:100010A8                 CMP     R8, R3
.text:100010AC                 MOVLS   R5, #0x22
.text:100010B0                 BLS     loc_10001070
.text:100010B4                 SUB     R3, R9, #2
.text:100010B8                 CMP     R3, #0x22
.text:100010BC                 BHI     loc_1000106C
.text:100010C0                 CMP     R2, #0
.text:100010C4                 MOVNE   R3, #0x2D
.text:100010C8                 MOV     R4, R7
.text:100010CC                 STRNEB  R3, [R4],#1
.text:100010D0                 LDR     R10, =__rt_udiv
.text:100010D4                 MOV     R6, #0
.text:100010D8                 MOV     R5, R4
.text:100010DC                 MOVNE   R6, #1
.text:100010E0                 RSBNE   R1, R1, #0
.text:100010E4
.text:100010E4 loc_100010E4                            ; CODE XREF: sub_10001018+104j
.text:100010E4                 LDR     R3, [R10]
.text:100010E8                 MOV     R0, R9
.text:100010EC                 MOV     LR, PC
.text:100010F0                 BX      R3
.text:100010F4                 MOV     R3, R1
.text:100010F8                 CMP     R3, #9
.text:100010FC                 ADDHI   R3, R3, #0x57
.text:10001100                 ADDLS   R3, R3, #0x30
.text:10001104                 MOV     R1, R0
.text:10001108                 STRB    R3, [R4],#1
.text:1000110C                 ADD     R6, R6, #1
.text:10001110                 CMP     R1, #0
.text:10001114                 BEQ     loc_10001120
.text:10001118                 CMP     R6, R8
.text:1000111C                 BCC     loc_100010E4
.text:10001120
.text:10001120 loc_10001120                            ; CODE XREF: sub_10001018+FCj
.text:10001120                 CMP     R6, R8
.text:10001124                 STRCSB  R11, [R7]
.text:10001128                 MOVCS   R5, #0x22
.text:1000112C                 BCS     loc_10001070
.text:10001130                 STRB    R11, [R4],#-1
.text:10001134
.text:10001134 loc_10001134                            ; CODE XREF: sub_10001018+130j
.text:10001134                 LDRSB   R3, [R5]
.text:10001138                 LDRSB   R2, [R4]
.text:1000113C                 STRB    R3, [R4],#-1
.text:10001140                 STRB    R2, [R5],#1
.text:10001144                 CMP     R5, R4
.text:10001148                 BCC     loc_10001134
.text:1000114C                 MOV     R5, #0
.text:10001150
.text:10001150 loc_10001150                            ; CODE XREF: sub_10001018+44j
.text:10001150                                         ; sub_10001018+78j
.text:10001150                 MOV     R0, R5
.text:10001154                 ADD     SP, SP, #4
.text:10001158                 LDMFD   SP!, {R4-R11,LR}
.text:1000115C                 BX      LR
.text:1000115C ; End of function sub_10001018
.text:1000115C
.text:1000115C ; ---------------------------------------------------------------------------
.text:10001160 off_10001160    DCD __rt_udiv           ; DATA XREF: sub_10001018+B8r
.text:10001164 off_10001164    DCD _invalid_parameter  ; DATA XREF: sub_10001018+20r
.text:10001164                                         ; sub_10001018:loc_10001070r