Understanding Opcodes

Disassembly, Programming, Coding, Assembly, Binary information and all hacking discussions belong here.

Understanding Opcodes

Unread postby ironmanisanemic » Sun Aug 16, 2015 12:09 pm


I have virtually zero programming experience, so i appologize if this question is very basic.

I am slowly (very very slowly) trying to dissasemble a bin from the ECU out of my old taurus. Im still working through the MAF code trying to get a good grasp of what's going on. I got to a point where it calls another subroutine. At first this seems very basic, but im having a difficult time actually understanding whats going on.

Code: Select all
8 2733: f2                pushp                push(PSW);
8 2734: fa                di                   disable ints;
8 2735: c4,15,38          stb   R38,R15        LSSO_A = R38;
8 2738: 08,09,00          shrw  0,9            0 = 0 / 200;
8 273b: 08,09,00          shrw  0,9            0 = 0 / 200;
8 273e: f3                popp                 pop(PSW);
8 273f: f0                ret                  return;

now where im confused is why is there 2 SHRW opcodes doing the same thing?

Also, i am a bit confused as to what this opcode is actually doing. Your discription if this opcode is confusing since your saying it is a divisor, but how to i know what to divide by or what to divide? But on the flipside, when i look up the opcode in the Ford EEC pocket reference, it shows this as a shift word right, this is easier to understand, but it looks like it shifts Binary 1001000 right 0 positions. That makes no sense why you would waste the time doing nothing.


According to this above, in the notes the 2nd byte is what gives the shift count, and if the shift count is 0 it adds 1 state.

Can you provide more clarification on this? I know its modifying the bits, but what its honestly doing is where im confused.

Thank you.


Ok, so i did some more reading, and i got the bytes backwards, it shifts 00000000 9 positions. But this still makes no sense. Why waste the time basically doing nothing, and doing it twice. Its not like the bits shifted in are 1s or anything. According to this page it just back fills the data with 0s.


So, now im trying to figure out what this is supposed to do, and why its repeated. I also dont see it doing anything with LSSO_A either, unless thats just to load it in ram for when it returns back to the MAF code.
A+ Contributor
Posts: 164
Joined: Sat Nov 09, 2013 10:50 am
Location: Vandenberg AFB, CA
Name: Miles
Vehicle Information: 89 Ford Bronco - 393W, Professional Products 190cc heads, Custom Comp Cams hyd roller cam, Edelbrock EFI Mustang intake, 10:1 compression, 30lb TrickFlow injectors, ProM 80mm Mass Air Meter, 2-1/2" into 3" y pipe, no cat, and hooker aerochamber muffler. U4P0 computer with Quarterhorse and BE, EA. AOD with all of the goodies.

Re: Understanding Opcodes

Unread postby decipha » Sun Aug 16, 2015 6:30 pm

its setting up the AD channel to be read, someone more knowledgeable like sailorbob would have to give you the specifics
User avatar
Posts: 15787
Joined: Mon Jul 15, 2013 5:29 pm
Location: New Orleans, LA
Name: Michael Ponthieux
Vehicle Information: Supercoupin' x10
90 (4x 5spds) - Dante, Ruby, Daja, Ava
91 4r70w - Skarlett
92 (2x) 5spd & auto - Bianqa, Andrea
93 auto - Danika
94 5spd Rionda
95 auto Aisha
Vehicle 2 Information: Others:
00 Lincoln LS - Luanda
98 Camaro SS - Bounquisha
02 Harley F-150 - Sasasha
03 Marauder - DyShyKy
00 Explorer 5L - Bernyce

Re: Understanding Opcodes

Unread postby sailorbob » Mon Aug 17, 2015 6:32 am

The programmer probably just wanted a time delay of 32 state times (7+9 twice).
Tuning Extraordinaire
Posts: 139
Joined: Tue Jul 16, 2013 1:04 am

Return to Programming & Coding

Who is online

Users browsing this forum: No registered users and 1 guest