|
|
| About site: Hardware/Components/Processors/Minimal - SUBLEQ |
Return to Computers also Computers |
| About site: http://mozaika.com.au/oleg/subleq/ |
Title: Hardware/Components/Processors/Minimal - SUBLEQ Simple one instruction language; type of OISC; specifications from Clive Gifford eigenratios self-interpreter page. Each subleq instruction has 3 operands which are memory addresses. Oleg Mazonka. |
|
|
|
|
SuperMonitor Adontec offers a protocol monitor and serial protocol monitor software. The software also supports monitoring on Notebooks.
| FusionVM_Enterprise FusionVM from Critical Watch automates the process of proactively managing network vulnerabilities and exposures. It enables a unified corporate process that is enterprise-wide, repeatable and measure
| Etach Emacs extension for MIME attachments and detachments works in RMAIL and Mail modes.
| RFC_1703 Principles of Operation for the TPC.INT Subdomain: Radio Paging -- Technical Procedures. M. Rose. October 1999.
| C_with_Safety__Cyclone Forum system with much debate, many interesting and useful posts, some nonsense. Begins debate via New Scientist Cyclone article. [Slashdot] (November 16, 2001)
| txt2xml A simple Java library for parsing arbitrarily structured text input into well-formed XML output as SAX, DOM, JDOM, or through an OutputStream. [Open source, BSD License]
|
|
| Alexa statistic for http://mozaika.com.au/oleg/subleq/ |
Please visit: http://mozaika.com.au/oleg/subleq/
|
| Related sites for http://mozaika.com.au/oleg/subleq/ |
| Watson_&_Walker Cheryl Watson specializes in z/OS tuning. This site offers access to some of her free reports and details on how to acquire her chargeable materials, including her Tuning Newsletter, CPU chart, classe | | Shindler,_Byron Develops and maintains software created in Revelation Software Advanced Revelation, and migrates databases and applications to OpenInsight. Located in Houston, Texas, USA. | | Photo_Album_Maker Produce personalized photo album using features like genuine frames, and multi-layered pages, also supports export independent executable, screensaver or video (AVI) file for convenient distribution. | | Media_Marketing,_Inc_ Modular software integrated sales automation suite designed for the newspapers' advertising departments. | | Apple_Bits_Users_Group_(ABUG) Kansas City, Missouri. A not for profit, volunteer organization dedicated to sharing Apple ][ information. Meetings, software library, board members and other important people, and a directory of A | | TheJNET Offers a separate level of filtering for each Internet user, and filters for audio, video, freeware, and shareware. | | Package_util_concurrent This package provides standardized, efficient versions of utility classes commonly encountered in concurrent Java programming. It mainly consists of implementations of a few interfaces. [Open Source, | | Lukman_QB_Game_Programming Free download games with source which author created using Quick Basic. | | RFC_2546 6Bone Routing Practice. A. Durand, B. Buclin. March 1999. | | Trancell Service that gives access to the World Wide Web and ICQ network using wireless devices with two-way email capabilities. | | Bali_3000_Internet_Café At Ubud, Bali offering Internet access, scanning and fax with background music. Includes location map and artist's rendering of the layout. | | Gold_Coast__Net_Users_Group Meeting information, past events summary, developers downloads. | | Information_about_Internet_Faxing Comprehensive articles outlining how internet faxing works. | | CNet_com__Will_Media_Giants_Bulldoze_Communities? News Analysis by CNET observing how Disney and Time Warner, by building enhanced entertainment sites, threaten topical online communities. (March 31, 1999) | | Multiple_Dispatch__A_New_Approach_Using_Templates_and_RTTI This article focuses on two new techniques based on templates and Run Time Type Identification (RTTI). | | Shadetree_Web_Design Provides design, implementation, maintenance, and hosting services. Based in San Luis Obispo, California, United States. | | WebGraffix_Media_Solutions,_LLC_ Offers web and graphic design, hosting, database development, e-commerce solutions and promotion. | | Elizabeth_International_Web_Design Offering web design, hosting, e-commerce solutions, database implementation, web consulting, and site maintenance. Located in New York, New York, United States. | | Net_Noise Design, Flash, content management, e-commerce, database development, search engine optimization, domain name registration, and hosting. Located in Brisbane, Australia. | | SeeMail_Lite Read your POP3 email messages while they remain on the server, from anywhere in the world. Check if there are any spam or long messages as well as read, delete, save, and print any of them before you |
|
This is websites2007.org cache of m/ as retrieved on 2008.09.07 websites2007.org's cache is the snapshot that we took of the page as we crawled the web. The page may have changed since that time.
|
Oleg Mazonka - Languages - SUBLEQ
SUBLEQ
Assembly language sqasm.cpp
Emulator (interpreter) sqrun.cpp
Subleq is a simple one instruction language (form of OISC).
Its specifications were taken from
Clive Gifford page
(http://eigenratios.blogspot.com/).
Each subleq instruction has 3 operands:
A B C
which are memory addresses. Execution of one instruction A B C
subtracts the value of memory in A from the content of memory in B.
If value after subtraction in B less or equal to zero, then
execution jumps to the address C; otherwise to the next instruction.
For example, in
3 4 6
7 7 7
3 4 0
first instruction subtracts 7 (address 3) from 7 (address 4).
The result in address 4 is 0, so goto 6. On address 6 is the
instruction 3 4 0 which again substracts 7 from now 0
and jumps back to 0. Here is a sequence of execution
(A and B are shown after subtraction)
0: 3 4 6 A=7 B=0
6: 3 4 0 A=7 B=-7
0: 3 4 6 A=7 B=-14
6: 3 4 0 A=7 B=-21
0: 3 4 6 A=7 B=-28
...
It is not convinient to use numbers as addresses so we can replace them
with labels or names:
X Y 6
X:7 Y:7 7
X Y 0
Then a small convertor sqasm.cpp (download from the top of the page)
would build the program above:
> sqasm < file.sq > file.out
> sqrun -trace file.out
If we want a program to produce a result - kind of output, then
we ahve to make a convention that there are well defined
memory addresses which take some special functions when used.
Let us have a look at this
"Hi" program
First line "Hi OUT" subtracts ASCII value 'H' from OUT register.
We specify later that OUT register is a special register and the action
is to print ASCII character of value 'H' (72).
Operand C is missed, but our assembler
is smart enough to assume that C is the next instruction.
The next instruction is the same but writes 'i' (105) to OUT.
The following instruction is an unconditional jump to a negative address, which
means HALT. This subtracts the memory cell 0 from the same memory cell. The
address of that memory in not important since the program stops here.
The next line ". Hi: 'H' 'i'" is data which is used by a program.
Dot signifies that the command is not an instruction - it does not have
necessary 3 operands. We need it to distinguish from the 2 operand
command when 3rd implicitly implied. For example:
the command "A:A B:B" on address 100 will be translated into
"100 101 103" (103=100+3) and ".A:A B:B" into "100 101".
The register OUT is not resolved on assembly stage. But we can tell
the emulator to use this unresolved symbol as a special address. For example,
assign -1 to it and print the value of operand A whenever instruction
uses -1 as operand B.
Another more complex example of "Hello world!" program
The logic of this program is to output one symbol at a time pointed by
a pointer p and incrementing it every iteration.
The line
. H: "Hello world!\n" E:E
is the same as
. H: 'H' 'e' 'l' 'l' 'o' ' ' 'w' 'o' 'r' 'l' 'd' '!' '\n' E:E
The pointer is initialized with the label 'H' and
checked for achieving the label 'E'. One complex
part of the program is printing a value stored at the address
stored in p (dereferencing). And another complex
part of the program is a check when p==E.
You have noticed that the symbol '#' makes comment. Another simplification
to the syntax is semicolon ';' separating one instruction from another.
Another simplification is implicit B operand, which means
B=A. And yet another simplification is '?' symbol specifying
the next address (this+1). For example,
"A;" is the same as "A A" which is the same as "A A ?", because
the default C operand is the next instruction and the address of the
next instruction is the same as the address of C operand +1.
The code "?; ? ? ?; ?" is translated into
1 1 3
4 5 6
7 7 9
Clive Gifford wrote self-interpreter in Subleq
http://eigenratios.blogspot.com/2006/09/mark-ii-oisc-self-interpreter.html
Below is a Clive's self-interpreter
in this syntax. One modification was made
to take into account a special OUT register, i.e. self-interpreter
shifting memory address space of iterpreted program should not shift
address of the special register.
Here is intermediate self-interpreter
code with Clive's comments.
How to run self-interpreter
> sqasm < siout.sq > si
> sqasm < hw3.sq > hw3
> sqrun hw3
Hello world!
> sqrun si hw3
Hello world!
> sqrun si si hw3
Hello world!
> sqrun si si si hw3
Hello world! Very slowly
Comments
Jump to negative address stops the program
Jump address is taken before instruction execution
Input is done as modification in memory - loading behind
Syntactic sugar
semicolon or EOL ends instruction
? stands for the next address, i.e. A:? means A+1
. stands for free instruction (not necessary 3)
output port is a defined memory address (possibly negative)
short instructions: "A" is "A A ?" and "A B" is "A B ?"
Other resources
99-bottles-of-beer in Subleq
Home
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src="http://mozaika.com.au/oleg/subleq//" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));
var pageTracker = _gat._getTracker("UA-5476072-1");
pageTracker._trackPageview();
|
|
| |
Simple | one | instruction | language; | type | of | OISC; | specifications | from | Clive | Gifford | eigenratios | self-interpreter | page. | Each | subleq | instruction | has | 3 | operands | which | are | memory | addresses. | Oleg | Mazonka. |
|
http://mozaika.com.au/oleg/subleq/
SUBLEQ 2008 September
dvd rental
dvd
Simple one instruction language; type of OISC; specifications from Clive Gifford eigenratios self-interpreter page. Each subleq instruction has 3 operands which are memory addresses. Oleg Mazonka.
Rules
|
© 2008 Internet Explorer 5+ or Netscape 6+
|
|
Recommended Sites: 1.
Arts -
Business -
Computers -
Games -
Health -
Home -
Kids and Teens -
News -
Recreation -
Reference -
Regional -
Science -
Shopping -
Society -
Sports -
World
Miss Gallery
- Top Anime Hentai
- DVD rental by mail
- Vegas Hotel - Power Tools - Buy WoW Gold - Credit Cards - Loans
|