Exetools  

Go Back   Exetools > General > Developer Section

Notices

Reply
 
Thread Tools Display Modes
  #1  
Old 05-09-2021, 19:49
Git's Avatar
Git Git is offline
Old Git
 
Join Date: Mar 2002
Location: Torino
Posts: 1,116
Rept. Given: 220
Rept. Rcvd 265 Times in 157 Posts
Thanks Given: 109
Thanks Rcvd at 217 Times in 125 Posts
Git Reputation: 200-299 Git Reputation: 200-299 Git Reputation: 200-299
IDA Processor module segmentation

I'm trying to finish writing an IDA cpu module for an old microcontroller which has 64 bytes of internal volatile RAM and 1 kbyte of internal EPROM code space, both starting at address 0x000. My problem is how to create the two segments both with address 0x000 at the start of the segment. Original was written with v70 SDK. Now using v75 SDK and all is working except the segmentation. The cpu does not have segmentation registers.

I had this working 3 years ago but lost the last few versions of source where I sorted the segmentation out. To my knowledge, the only source I ever lost

Can anybody help please?
Git
Reply With Quote
  #2  
Old 05-10-2021, 03:10
deepzero's Avatar
deepzero deepzero is offline
VIP
 
Join Date: Mar 2010
Location: Germany
Posts: 301
Rept. Given: 114
Rept. Rcvd 64 Times in 42 Posts
Thanks Given: 183
Thanks Rcvd at 216 Times in 92 Posts
deepzero Reputation: 64
Are you writing a cpumodule or a loader or both? If there is no segmentation register, then the different memories are accessed by different instructions?
Reply With Quote
  #3  
Old 05-10-2021, 05:34
Git's Avatar
Git Git is offline
Old Git
 
Join Date: Mar 2002
Location: Torino
Posts: 1,116
Rept. Given: 220
Rept. Rcvd 265 Times in 157 Posts
Thanks Given: 109
Thanks Rcvd at 217 Times in 125 Posts
Git Reputation: 200-299 Git Reputation: 200-299 Git Reputation: 200-299
CPU module. Code sits in the eprom. Operands that are in RAM are addressed by the operand addressing mode. For example, VARA += VARB :

Code segment :

000 MOV R0, #VARA ; R0 contains address of RAM variable VARA
002 MOV R1, #VARB ; R1 contains address of RAM variable VARB
004 MOV A, @R0 ; Get contents of VARA into accumulator
005 ADD A, @R1 ; Add contents of VARV to accumulator
006 MOV @R0, A ; Put results back into VARA

Data Segment :
000 VARA: .DS 1 ; Reserve 1 byte in RAM for VARA
001 VARB: .DS 1 ; Reserve 1 byte in RAM for VARB

It's a little more complicated in that the registers are in RAM and take 0x00 to 0x17, so RAM variables can start at 0x17. Makes no difference to the problem in hand though.

Git
Reply With Quote
  #4  
Old 09-28-2023, 04:51
Mavrick Mavrick is offline
Friend
 
Join Date: Sep 2023
Posts: 7
Rept. Given: 0
Rept. Rcvd 0 Times in 0 Posts
Thanks Given: 0
Thanks Rcvd at 4 Times in 4 Posts
Mavrick Reputation: 0
Quote:
Originally Posted by Git View Post
I'm trying to finish writing an IDA cpu module for an old microcontroller which has 64 bytes of internal volatile RAM and 1 kbyte of internal EPROM code space, both starting at address 0x000. My problem is how to create the two segments both with address 0x000 at the start of the segment. Original was written with v70 SDK. Now using v75 SDK and all is working except the segmentation. The cpu does not have segmentation registers.

I had this working 3 years ago but lost the last few versions of source where I sorted the segmentation out. To my knowledge, the only source I ever lost

Can anybody help please?
Git
I can help, if you are still working on this.
Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Intel Processor Tracing Computer_Angel General Discussion 3 12-04-2015 03:36
Team Project: PHP Processor v1.2??? padawan General Discussion 21 02-24-2004 07:57


All times are GMT +8. The time now is 05:01.


Always Your Best Friend: Aaron, JMI, ahmadmansoor, ZeNiX, chessgod101
( 1998 - 2024 )