Toggle menu
Toggle personal menu
Not logged in
Your IP address will be publicly visible if you make any edits.

ASM-Interpreter DS: Difference between revisions

From GameBrew
(Created page with "{{Infobox DS Homebrews}} {{Infobox DS Homebrews |title=ASM-Interpreter DS |image= |description=A simple assembly interpreter. It can be used to learn the basics of most ass...")
 
m (Text replacement - "|download=https://dlhb.gamebrew.org/dshomebrew/" to "|download=https://dlhb.gamebrew.org/dshomebrew2/")
 
(12 intermediate revisions by the same user not shown)
Line 1: Line 1:
{{Infobox DS Homebrews}}
{{Infobox DS Homebrews
{{Infobox DS Homebrews
|title=ASM-Interpreter DS
|title=ASM-Interpreter DS
|image=
|image=Asminterpreterds5.png
|description=A simple assembly interpreter. It can be used to learn the basics of most assembly languages.
|description=A simple assembly interpreter. It can be used to learn the basics of most assembly languages.
|author=GEMISIS
|author=GEMISIS
Line 9: Line 8:
|version=2013
|version=2013
|license=Mixed
|license=Mixed
|download=https://dlhb.gamebrew.org/dshomebrew/asminterpreterds.7z
|download=https://dlhb.gamebrew.org/dshomebrew2/asminterpreterds.7z
|website=https://github.com/gemisis/ASM-Interpreter
|website=https://github.com/gemisis/ASM-Interpreter
|source=
|source=https://github.com/gemisis/ASM-Interpreter
}}
}}
ASM-Interpreter is a simple assembly interpreter. It can be used to learn the basics of most assembly languages.  
ASM-Interpreter is a simple assembly interpreter for DS/DSi. It can be used to learn the basics of most assembly languages.  


It was coded for the Nintendo DS due to its dual-screen nature. This means that assembly program's memory and registers can be shown on one screen, while the currently running code can be shown on another.
It was coded for the Nintendo DS due to its dual-screen nature. This means that assembly program's memory and registers can be shown on one screen, while the currently running code can be shown on another.


The homebrew was participated in the NEO Retro Coding Compo 2013.
The homebrew was participated in the NEO Retro Coding Compo 2013 (App).


==User guide==
==User guide==
Using the top screen of the Nintendo DS/DSi, you can view the memory and registers of the interpreter live. 
Using the top screen of the Nintendo DS/DSi, you can view the memory and registers of the interpreter live.  
Using the top screen of the Nintendo DS/DSi, you can view the memory and registers of the interpreter live.  


Using the right arrow key, you can go through your program line by line and watch it update, or you can press the B button to have it perform your full program without any pauses. There are some some simple test files included with the program.
Using the right arrow key, you can go through your program line by line and watch it update, or you can press the B button to have it perform your full program without any pauses. There are some some simple test files included with the program.


The keyboard can be used to type in filenames, as well as arguments. Argv is supported as well.
The keyboard can be used to type in filenames, as well as arguments. Argv is supported as well.


Here are a list of opcodes that can be used:
Here are a list of opcodes that can be used:
Line 53: Line 50:


==Controls==
==Controls==
D-Pad - Go through your program line by line and watch it update
D-Pad Right - Go through your program line by line and watch it update


A - Confirmation
A - Confirmation
Line 60: Line 57:


'''When running a program:'''
'''When running a program:'''
D-Pad Right - Go through command by command


B - Run the program all at once
B - Run the program all at once
D-Pad Right - Go through command by command


==Screenshots==
==Screenshots==
Line 76: Line 73:
* Fixed some more bugs (specifically with scrolling text).
* Fixed some more bugs (specifically with scrolling text).
* Added the ability to scrolling through text input (Press up to scroll up and down to scroll down).
* Added the ability to scrolling through text input (Press up to scroll up and down to scroll down).
* Added a file browser for selecting itemsPress A to select a file/folder and B to cancel.
* Added a file browser for selecting items. Press A to select a file/folder and B to cancel.


'''2013/07/25'''
'''2013/07/25'''
* Various bug fixes with things (Keyboard's shift key now works for example).
* Various bug fixes with things (Keyboard's shift key now works for example).
* Added a text editor as well! Now you can create files on the system too (No editing as of yet though).
* Added a text editor as well. Now you can create files on the system too (No editing as of yet though).


==External links==
==External links==
Line 86: Line 83:
* NeoFlash - https://www.neoflash.com/forum/index.php?topic=7641.0
* NeoFlash - https://www.neoflash.com/forum/index.php?topic=7641.0


[[Category:DS homebrew applications]]
[[Category:NEO Retro Coding Compo 2013]]
[[Category:Other DS applications]]

Latest revision as of 04:13, 16 August 2024

ASM-Interpreter DS
Asminterpreterds5.png
General
AuthorGEMISIS
TypeOther Apps
Version2013
LicenseMixed
Last Updated2013/08/07
Links
Download
Website
Source

ASM-Interpreter is a simple assembly interpreter for DS/DSi. It can be used to learn the basics of most assembly languages.

It was coded for the Nintendo DS due to its dual-screen nature. This means that assembly program's memory and registers can be shown on one screen, while the currently running code can be shown on another.

The homebrew was participated in the NEO Retro Coding Compo 2013 (App).

User guide

Using the top screen of the Nintendo DS/DSi, you can view the memory and registers of the interpreter live.

Using the right arrow key, you can go through your program line by line and watch it update, or you can press the B button to have it perform your full program without any pauses. There are some some simple test files included with the program.

The keyboard can be used to type in filenames, as well as arguments. Argv is supported as well.

Here are a list of opcodes that can be used:

  • add reg1, reg2 - Adds 2 registers and stores the results in AC. Example: add r1, r2
  • sub reg1, reg2 - Subtracts reg2 from reg1 and stores the results in AC. Example: sub r1, r2
  • mul reg1, reg2 - Multiplies reg1 and reg2 and stores the results in AC. Example: mul r1, r2
  • div reg1, reg2 - Divides reg1 by reg2 and stores the results in AC. Example: div r1, r2
  • mod reg1, reg2 - Performs the modulus function on reg1 with reg2 and stores the results in AC. Example: mod r1, r2
  • store mem1, reg1 - Stores reg1 in mem1. Example: store m1, r1
  • load reg1, mem1 - Loads reg1 with mem1. Example: load r1, m1
  • copy reg1, reg2 - Copies reg1 to reg2. Example: copy r1, r2
  • jmp label - Jumps to the chosen label. (label needs quotes around it) Example: jmp "labeltitle"
  • set reg1, val - Sets reg1 with the value val. Example: set r1, 42
  • jne reg1, label - Jumps to the label if reg1 does not equal AC. (label needs quotes around it) Example: jne r1, "labeltitle"
  • jeq reg1, label - Jumps to the label if reg1 equals AC. (label needs quotes around it) Example: jeq r1, "labeltitle"
  • cmp reg1, reg2 - Compares reg1 and reg2 and stores the results in AC. (0 if equal, -1 if reg1 < reg2, and 1 if reg2 > reg1) Example: cmp r1, r2
  • print reg - Prints the register as an integer value. Example: print r1
  • printc reg - Prints the register as a character value Example: print r1
  • getc reg - Gets a character from the keyboard and stores it in the register. Example: getc r1
  • mov reg1, reg2 - Moves register 2's value to register 1. Example: mov r1, r2
  • mov reg1, #N - Moves value N to register 1. Example: mov r1, #0xff

labels are defined with a colon at the end (no spaces between). Example: labeltitle:

A # sign can be prefixed to all number values.

Controls

D-Pad Right - Go through your program line by line and watch it update

A - Confirmation

B - Cancel

When running a program:

D-Pad Right - Go through command by command

B - Run the program all at once

Screenshots

asminterpreterds6.png asminterpreterds7.png

Changelog

2013/08/07

  • Fixed some very nasty bugs with the file browser. Final tests on hardware are now showing everything resolved.

2013/08/01

  • Fixed some more bugs (specifically with scrolling text).
  • Added the ability to scrolling through text input (Press up to scroll up and down to scroll down).
  • Added a file browser for selecting items. Press A to select a file/folder and B to cancel.

2013/07/25

  • Various bug fixes with things (Keyboard's shift key now works for example).
  • Added a text editor as well. Now you can create files on the system too (No editing as of yet though).

External links

Advertising: