• Please review our updated Terms and Rules here

Intel 8041/8741 Assembly Language

SwedaGuy

Experienced Member
Joined
Feb 26, 2007
Messages
306
Location
Waupun, WI
I have been trying to locate an assembly language/programming manual for an Intel 8041 (ROM version) / 8741 (EPROM Version) microcontroller.

I've found books that show the mnemonics, but not the actual Op Codes. I'm trying to disassemble a ROM-resident program. I thought the 8051 or 8x49 instruction set would be close, but the disassembled program doesn't make a whole lot of sense. Additionally, there are bytes that don't appear to be valid in these other instruction sets...

If anyone has any information pertaining to this processor, I would greatly appreciate it.
 
I once wrote a disassembler for the 8048 (which has the same instruction set as the 8041) based on the "tasm" assembler tables, but i can't find it, I suspect the bits fell off the disk years ago, they are a really easy starting point if you end up writing your own one.

However.... if you do a google on 8048 disassembler you will find heaps of disassemblers as freeby downloads.

It's hard work though, as there are no labels, so it's best to either print out the listing, and get a ruler and coloured pencils out to pencil in the jumps, or pop it into a good editor and indent all the loops.

I think you were also asking about the stuff that didn't make sense as opcodes, That's because it isn't! unlike in the pic where you have "data" instructions (retlw xx) in the intel microcontrollers there are just blocks of data which look like rubbish executable code, only (hopefully!!!) never get jumped into & therefore dont execute.
 
I, too, used the 8048 instruction set as the base, but found that certain instructions were missing.

For example, I didn't know which opcodes performed the JNIBF (Jump if NOT Input Buffer Full) and MOV A,DBB (Data Bus Buffer byte to Accumulator) instructions. I think (through process of elimination) I've found the opcodes that differ from the 8048, but it would be nice to have some definitive information.

I've run into the "garbage" text you're talking about, too...but usually I can pick that stuff out because it is non-sense. For example, when a value is stored to a register, then another value is stored on top of it and then the register is cleared altogether (just one example), that would be a clue that I'm looking at some kind of constant data.

Since this is a printer controller, that is how I isolated where the dot-matrix patterns for each character were stored. I actualy converted the hex values to binary and plotted them out on graph paper--really high-tech. Of course, it helped that I knew what the character set was to begin with...

The real fun with the constant data was in the main program, which is 8085 assembler. There, the constant data is stored in a packed format, 4 characters in 3 bytes, so I had to write the unpack routine into a utility and manually unpack the data as I went along. Let me tell you, there is no more fun you can have on a Saturday afternoon!
 
That is a fantastic reference you've found. I had never heard of that site before, but it's on my list of favorites now.

He did have a sort of 8041 data sheet, and it shows some of the missing instructions. Thanks for the info!
 
Nec D8741

Nec D8741

just a note;
I have one 8741 ( Eprom version) from NEC
See http://matthieu.benoit.free.fr/cross/partpix/images/D8741AD.jpg
if you want I can post it to you for free
this is NMOS microcontroller it can be programmed by a lot of programmers
I may have hardcopy of the Intel Data sheet if you need also
Matthieu
That is a fantastic reference you've found. I had never heard of that site before, but it's on my list of favorites now.

He did have a sort of 8041 data sheet, and it shows some of the missing instructions. Thanks for the info!
 
8741

8741

I wrote the code to test this part about 28 years ago. Forgot most of it.

Did you ever find the data sheet?

Jack
 
Well, not the actual Intel data sheet...but we did find someone who had a third party resource that helped us. There was a little bit of guessing involved, but we got it worked out...
 
Back
Top