mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2024-10-23 21:50:49 +00:00
8048: fix JMPP @A extra dereference
JMPP was doing two indirections : one in PData and then one again in AddrInd, where there should only be one. MCS-48 docs : > The contents of the Program Memory location addressed by the Accumulator is used as the new page offset of the Program Counter. i.e. (PC 0 – 7) <- ((A)) Previous implementation caused disasm / decompiler errors such as "Low-level Error: Could not find op at target address" refs: https://github.com/NationalSecurityAgency/ghidra/discussions/4818
This commit is contained in:
parent
97b0984426
commit
bb08f67417
|
@ -273,7 +273,7 @@ P3Data: @A is A {
|
|||
local addr:2 = 0x300; addr[0,8] = A; export *[CODE]:1 addr;
|
||||
}
|
||||
AddrInd: PData is PData {
|
||||
local addr:2 = inst_next; addr[0,8] = PData; export *[CODE]:1 addr;
|
||||
local addr:2 = inst_next; addr[0,8] = PData; export addr;
|
||||
}
|
||||
Ab: abit is abit {
|
||||
local bit:1 = (A>>abit)&1; export bit;
|
||||
|
@ -450,7 +450,7 @@ RniI: Imm is Imm {
|
|||
goto Addr12;
|
||||
}
|
||||
:JMPP AddrInd is ophi=11 & oplo=3 & AddrInd {
|
||||
goto AddrInd;
|
||||
goto [AddrInd];
|
||||
}
|
||||
:MOV A,Imm is (ophi=2 & A)... & Imm {
|
||||
A = Imm;
|
||||
|
|
Loading…
Reference in New Issue
Block a user