mirror of
https://github.com/netwide-assembler/nasm.git
synced 2025-02-05 16:51:27 +08:00
Make the disassembler correctly handle the new \34-\36 and \44-\46 codes.
This commit is contained in:
parent
4cd2604ebf
commit
d308de119c
12
disasm.c
12
disasm.c
@ -334,7 +334,7 @@ static int matches (struct itemplate *t, unsigned char *data, int asize,
|
||||
if (c >= 034 && c <= 036) {
|
||||
ins->oprs[c-034].offset = *data++;
|
||||
ins->oprs[c-034].offset |= (*data++ << 8);
|
||||
if (asize == 32) {
|
||||
if (osize == 32) {
|
||||
ins->oprs[c-034].offset |= (((long) *data++) << 16);
|
||||
ins->oprs[c-034].offset |= (((long) *data++) << 24);
|
||||
}
|
||||
@ -347,6 +347,16 @@ static int matches (struct itemplate *t, unsigned char *data, int asize,
|
||||
ins->oprs[c-040].offset |= (((long) *data++) << 16);
|
||||
ins->oprs[c-040].offset |= (((long) *data++) << 24);
|
||||
}
|
||||
if (c >= 044 && c <= 046) {
|
||||
ins->oprs[c-044].offset = *data++;
|
||||
ins->oprs[c-044].offset |= (*data++ << 8);
|
||||
if (asize == 32) {
|
||||
ins->oprs[c-044].offset |= (((long) *data++) << 16);
|
||||
ins->oprs[c-044].offset |= (((long) *data++) << 24);
|
||||
}
|
||||
if (segsize != asize)
|
||||
ins->oprs[c-044].addr_size = asize;
|
||||
}
|
||||
if (c >= 050 && c <= 052) {
|
||||
ins->oprs[c-050].offset = (signed char) *data++;
|
||||
ins->oprs[c-050].segment |= SEG_RELATIVE;
|
||||
|
Loading…
Reference in New Issue
Block a user