tgtakaoka / libasm Goto Github PK
View Code? Open in Web Editor NEWC++ library of assembler / disassembler that can run on embedded system
License: Other
C++ library of assembler / disassembler that can run on embedded system
License: Other
Improve error reporting.
Command line interface should display much descriptive error message than just a number.
And listing file should be generated even there is an error.
Thank you for your time and effort on this project.
I give you shout-out on my INS8073 blog page at [https://8073sbc.wordpress.com/2021/07/27/additional-tids-and-bits-to-add/]
I think the features suggested in the title would be a great enhancement to the dissassembler in CLI mode.
Peace and blessings,
JQ
The release works fine on x86 and arm, but due to unknown bugs in libasm related to PROGMEM, it would not work on AVR architecture.
Using libasm as wasm backend to provide assembler and disassembler web interface.
Currently test/gen command can generate fairly good auto-generated test assemble source for 8-bit CPU. Since 16-bit CPU's instruction usually has multiple bit-fields, scanning by simply incrementing instruction "value" doesn't work well. Need to find a good way to
Compiling Arduino example code targeting for ARM/Arduino spits a lot of compiler warning about dereferencing type-punned pointer.
pgm_read_byte, pgm_read_word, pgm_read_otr #define macro in config_host.h are the cause. And table_base.h should also be fixed.
6800 Assembler correctly accepts
LDA A #$01
LDA A,#$02
LDAA #$03
LDA B #$04
LDA B,#$05
LDAB #$06
but also wrongly accepts
LDA #$07
as ```LDAA``.
This should be an error.
Is it possible to do math in mediate constants?
For example take the low or high bytes from a label's address.
In 6502
lda # high byte of 'return'
sta some high byte vector location
lda# low byte of 'return'
sta some low byte vector location
etc
.return RTI
In the BBC Micro BASIC's build in 6502 assembler I would use
LDA # return DIV 256
LDA # return MOD 256
I would also find it useful if asm could generate c header file like this. Probably the prefix string 'at' could be a parameter.
const unsigned char atFFE0[] =
{
0xFF, 0xFE, 0xFD, 0xFC, 0xFB, 0xFA, 0xF9, 0xF8, 0xF7, 0xF6, 0xF5
};
Also '-' as a file name for 'use std out' would be handy to pipeline the processing of the hex file output for example.
Excellent work though, looking forward to using ins8060 and ins8070 modes.
Currently only 0~15 of 8-bit register address specified as assembler operand are converted to work register Rn or @rn.
we must support SETDP or ASSUME RP:nn directive.
Supporting early 16bit DSP seems interesting.
The libasm disassembler should support ELF format as it's input, probably with a relocation table support.
After release 1.6.29, libasm assembler command line interface asm
doesn't properly handle assembler directives.
Such as FCB in 6502.
See the change comment of d083fbe568.
Hi Professor
I have a tmp96c141 processor.
How can I write code for this processor with your library in the Arduino environment?
please guide me . I really need coding for tmp96c141 from the tlcs 900 family!
Thank.
mail: [email protected]
Report from https://github.com/electrickery
My target is the TMS70C02 processor. This is what seems to work:
For constants, libasm seems to use C-type presentations
Directives:
ORG
INCLUDE "assemblyHeader.asm"
EQU
DATA
Constant presentations:
%>0B immediate hex number
%0x0B immediate hex number
%0b01010101 immediate binary number
%!123 immediate 'not 123'
%030 immediate decimal number
In EQU declarations the 'nnnh' presentation is supported, but not in constants
used in code mnemonics.
The '*' comment character is supported but only as the first,
non-space character on the line
Bytes in memory use the DATA PseudoOp, text requires single quotes:
MSG_USAGE DATA CR, LF, 'H - this help text', CR, LF, PRMPT, EOL
It would be great if libasm generate ELF format file as an output binary with a relocation table.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.