Name | monistode-binutils JSON |
Version |
0.1.10
JSON |
| download |
home_page | |
Summary | A meta-repository for the Monistode binutils. |
upload_time | 2023-12-16 07:55:18 |
maintainer | |
docs_url | None |
author | rizerphe |
requires_python | >=3.11,<4.0 |
license | |
keywords |
|
VCS |
|
bugtrack_url |
|
requirements |
No requirements were recorded.
|
Travis-CI |
No Travis.
|
coveralls test coverage |
No coveralls.
|
# Monistode Binutils: A Simple Assembly Language Binutils
Monistode Binutils is a toolset created for the purpose of learning and building a basic assembly language assembler, linker and disassembler. This meta-repo serves as the central hub for Monistode Binutils, allowing you to easily access and use the tool.
## Getting Started
You can get started with Monistode Binutils by following these steps:
### Installation
You can install Monistode Binutils using `pipx`, which ensures that it runs in an isolated environment:
```sh
pipx install monistode-binutils
```
### Assembling Code
Once you've installed Monistode Binutils, you can assemble your code using the `mstas` command:
```sh
mstas config.yaml your-assembly-file.s output-file.o
```
Make sure to replace `config.yaml`, `your-assembly-file.s`, and `output-file.o` with the appropriate file names and paths.
### Disassembling Code
You can also disassemble code with the `mstdas` command:
```sh
mstdas config.yaml input-file.o
```
Again, replace `config.yaml` and `input-file.o` with the actual configuration and input file you want to disassemble.
## Example Assembly Language
Here's an example of a simple assembly language that Monistode Binutils supports:
```yaml
opcode_length: 6
opcode_offset: 0
text_byte_length: 6
data_byte_length: 8
text_address_size: 16
data_address_size: 16
commands:
- mnemonic: yelp
opcode: !!int 0b1
arguments:
- type: padding
bits: 2
- type: immediate
bits: 16
- mnemonic: jmp
opcode: !!int 0b10
arguments:
- type: padding
bits: 2
- type: text_addr
bits: 16
```
## Example Usage
You can create and assemble an assembly file:
```as
.text
_start:
YELP $512
YELP $2
YELP $43
YELP $17
JMP main + 138
main:
YELP $24
```
After assembly, you can disassemble it to see the machine code:
```
Object file:
Parameters:
Opcode size: 6
Text byte: 6
Data byte: 8
Text address: 16
Data address: 16
Sections:
Name: text
Size: 24 entries (18 bytes of disk)
Name: symbol_table
Size: 2 entries (36 bytes of disk)
Name: relocation_table
Size: 1 entries (33 bytes of disk)
.text
_start:
0000: yelp $512 # 000001 000000 001000 000000
0004: yelp $2 # 000001 000000 000000 000010
0008: yelp $43 # 000001 000000 000000 101011
000c: yelp $17 # 000001 000000 000000 010001
0010: jmp main + 138 # 000010 000000 000010 000111
main:
0014: yelp $24 # 000001 000000 000000 011000
.symbol_table
text:00000000 _start
text:00000014 main
.relocation_table
text:00000011 + 2bits (16-bit) text -> main, relative
```
Raw data
{
"_id": null,
"home_page": "",
"name": "monistode-binutils",
"maintainer": "",
"docs_url": null,
"requires_python": ">=3.11,<4.0",
"maintainer_email": "",
"keywords": "",
"author": "rizerphe",
"author_email": "44440399+rizerphe@users.noreply.github.com",
"download_url": "https://files.pythonhosted.org/packages/91/4c/fea7e5db0edcb5bb4371ca8c40441779f4973d119e0ce4aaa9980ecab092/monistode_binutils-0.1.10.tar.gz",
"platform": null,
"description": "# Monistode Binutils: A Simple Assembly Language Binutils\n\nMonistode Binutils is a toolset created for the purpose of learning and building a basic assembly language assembler, linker and disassembler. This meta-repo serves as the central hub for Monistode Binutils, allowing you to easily access and use the tool.\n\n## Getting Started\n\nYou can get started with Monistode Binutils by following these steps:\n\n### Installation\n\nYou can install Monistode Binutils using `pipx`, which ensures that it runs in an isolated environment:\n\n```sh\npipx install monistode-binutils\n```\n\n### Assembling Code\n\nOnce you've installed Monistode Binutils, you can assemble your code using the `mstas` command:\n\n```sh\nmstas config.yaml your-assembly-file.s output-file.o\n```\n\nMake sure to replace `config.yaml`, `your-assembly-file.s`, and `output-file.o` with the appropriate file names and paths.\n\n### Disassembling Code\n\nYou can also disassemble code with the `mstdas` command:\n\n```sh\nmstdas config.yaml input-file.o\n```\n\nAgain, replace `config.yaml` and `input-file.o` with the actual configuration and input file you want to disassemble.\n\n## Example Assembly Language\n\nHere's an example of a simple assembly language that Monistode Binutils supports:\n\n```yaml\nopcode_length: 6\nopcode_offset: 0\ntext_byte_length: 6\ndata_byte_length: 8\ntext_address_size: 16\ndata_address_size: 16\ncommands:\n - mnemonic: yelp\n opcode: !!int 0b1\n arguments:\n - type: padding\n bits: 2\n - type: immediate\n bits: 16\n - mnemonic: jmp\n opcode: !!int 0b10\n arguments:\n - type: padding\n bits: 2\n - type: text_addr\n bits: 16\n```\n\n## Example Usage\n\nYou can create and assemble an assembly file:\n\n```as\n.text\n\n_start:\nYELP $512\nYELP $2\nYELP $43\nYELP $17\n\nJMP main + 138\n\nmain:\nYELP $24\n```\n\nAfter assembly, you can disassemble it to see the machine code:\n\n```\nObject file:\nParameters:\n Opcode size: 6\n Text byte: 6\n Data byte: 8\n Text address: 16\n Data address: 16\nSections:\n Name: text\n Size: 24 entries (18 bytes of disk)\n\n Name: symbol_table\n Size: 2 entries (36 bytes of disk)\n\n Name: relocation_table\n Size: 1 entries (33 bytes of disk)\n\n\n.text\n _start:\n0000: yelp $512 # 000001 000000 001000 000000\n0004: yelp $2 # 000001 000000 000000 000010\n0008: yelp $43 # 000001 000000 000000 101011\n000c: yelp $17 # 000001 000000 000000 010001\n0010: jmp main + 138 # 000010 000000 000010 000111\n main:\n0014: yelp $24 # 000001 000000 000000 011000\n\n.symbol_table\n text:00000000 _start\n text:00000014 main\n\n.relocation_table\n text:00000011 + 2bits (16-bit) text -> main, relative\n```\n",
"bugtrack_url": null,
"license": "",
"summary": "A meta-repository for the Monistode binutils.",
"version": "0.1.10",
"project_urls": null,
"split_keywords": [],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "b80689711f59bdbc1b31f59b0fb226e4a2762e07189bfe7a37a70771ef469836",
"md5": "08ae63dd10013292c636b392f2a376b0",
"sha256": "f4a6b14537089530887503f9deb9fa8510013e978c294f933bbbe3e1eb66a4b9"
},
"downloads": -1,
"filename": "monistode_binutils-0.1.10-py3-none-any.whl",
"has_sig": false,
"md5_digest": "08ae63dd10013292c636b392f2a376b0",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": ">=3.11,<4.0",
"size": 2201,
"upload_time": "2023-12-16T07:55:14",
"upload_time_iso_8601": "2023-12-16T07:55:14.456225Z",
"url": "https://files.pythonhosted.org/packages/b8/06/89711f59bdbc1b31f59b0fb226e4a2762e07189bfe7a37a70771ef469836/monistode_binutils-0.1.10-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "914cfea7e5db0edcb5bb4371ca8c40441779f4973d119e0ce4aaa9980ecab092",
"md5": "e5f561e0f50825f885399d5149471b36",
"sha256": "c87771d688cc6e5ebe09a3359c68006a2be52c227002993f425b1889214cb342"
},
"downloads": -1,
"filename": "monistode_binutils-0.1.10.tar.gz",
"has_sig": false,
"md5_digest": "e5f561e0f50825f885399d5149471b36",
"packagetype": "sdist",
"python_version": "source",
"requires_python": ">=3.11,<4.0",
"size": 1857,
"upload_time": "2023-12-16T07:55:18",
"upload_time_iso_8601": "2023-12-16T07:55:18.196552Z",
"url": "https://files.pythonhosted.org/packages/91/4c/fea7e5db0edcb5bb4371ca8c40441779f4973d119e0ce4aaa9980ecab092/monistode_binutils-0.1.10.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2023-12-16 07:55:18",
"github": false,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"lcname": "monistode-binutils"
}