From d43606faa394e4604ec23d1817ee6358b845e038 Mon Sep 17 00:00:00 2001 From: j8takagi <j8takagi@nifty.com> Date: Thu, 1 Nov 2012 16:42:32 +0900 Subject: [PATCH] =?utf8?q?=E3=83=89=E3=82=AD=E3=83=A5=E3=83=A1=E3=83=B3?= =?utf8?q?=E3=83=88=E3=81=AE=E6=95=B4=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- doc/.gitignore | 10 +- doc/Makefile | 32 +- doc/casl2_spec.html | 341 +++++++++++ doc/casl2_spec.texi | 1310 +++++++++++++++++++++++++++++++++++++++++++ doc/style.css | 4 + doc/yacasl2.info | 1182 ++++++++++++++++++++++++++++++++++++++ 6 files changed, 2862 insertions(+), 17 deletions(-) create mode 100644 doc/casl2_spec.html create mode 100644 doc/casl2_spec.texi create mode 100644 doc/yacasl2.info diff --git a/doc/.gitignore b/doc/.gitignore index e5c6b84..3e5ded9 100644 --- a/doc/.gitignore +++ b/doc/.gitignore @@ -1,5 +1,5 @@ -html -doxygen/* -yacasl2.?? -yacasl2.??? -yacasl2.info +install.html +manual.html +manual.info +manual.pdf +manual_html diff --git a/doc/Makefile b/doc/Makefile index 3cde90f..c118e45 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -1,6 +1,7 @@ MANUAL = manual INSTALLDOC = install MANUALSRC = $(MANUAL).texi +MANUALINFO = yacasl2.info INSTALLDOCSRC = $(INSTALLDOC).texi CSS = style.css MANUALHTMLDIR = manual_html @@ -20,20 +21,27 @@ GZIP = gzip prefix ?= ~ infodir ?= $(prefix)/share/info -.PHONY: all install-manual uninstall-manual clean clean-manual clean-installdoc clean-textmp +.PHONY: all info html install-info uninstall-info clean clean-manual clean-installdoc clean-textmp .INTERMEDIATE: $(MANUAL).dvi -all: $(MANUAL).info $(MANUAL).html $(MANUALHTMLDIR) $(MANUAL).pdf $(INSTALLDOC).html ../INSTALL +all: info html $(MANUAL).pdf ../INSTALL + +info: $(MANUALINFO) + +$(MANUALINFO): $(MANUALSRC) + $(MAKEINFO) -o $(MANUALINFO) $(MANUALSRC) + +html: $(MANUAL).html $(MANUALHTMLDIR) $(INSTALLDOC).html + +$(MANUAL).html: $(MANUALSRC) $(CSS) + $(MAKEINFO) -o $@ --no-split --html --css-include=$(CSS) $< $(MANUALHTMLDIR): $(MANUALSRC) $(CSS) $(INSTALL) -d $@ $(INSTALL) $(CSS) $@/ $(MAKEINFO) -o $@ --html --css-ref=$(CSS) $< -$(MANUAL).html: $(MANUALSRC) $(CSS) - $(MAKEINFO) -o $@ --no-split --html --css-include=$(CSS) $< - $(MANUAL).pdf: $(MANUAL).dvi $(DVI2PDF) $< @@ -42,15 +50,15 @@ $(MANUAL).dvi: $(MANUALSRC) @$(MAKE) clean-textmp $(MANUAL).txt: $(MANUALSRC) - $(MAKEINFO) --no-headers -o $@ $(MANUALSRC) + $(MAKEINFO) --no-headers --disable-encoding -o $@ $(MANUALSRC) -install-manual: $(MANUAL).info +install-info: $(MANUAL).info $(INSTALL) -d $(infodir) - $(INSTALL) $(MANUAL).info $(infodir)/ - $(INSTALL-INFO) $(infodir)/$(MANUAL).info $(infodir)/dir - $(GZIP) $(infodir)/$(MANUAL).info + $(INSTALL) $(MANUALINFO) $(infodir)/ + $(INSTALL-INFO) $(infodir)/$(MANUALINFO) $(infodir)/dir + $(GZIP) -f $(infodir)/$(MANUALINFO) -uninstall-manual: $(MANUAL).info +uninstall-info: $(MANUAL).info $(INSTALL-INFO) --delete $(infodir)/$(MANUAL) $(infodir)/dir $(RM) $(infodir)/$(MANUAL)* @@ -58,7 +66,7 @@ $(INSTALLDOC).html: $(INSTALLDOCSRC) $(CSS) $(MAKEINFO) -o $@ --no-split --html --css-include=$(CSS) $< ../INSTALL: $(INSTALLDOCSRC) - $(MAKEINFO) -o $@ --no-headers $< + $(MAKEINFO) -o $@ --no-headers --disable-encoding $< clean: clean-manual clean-installdoc clean-textmp diff --git a/doc/casl2_spec.html b/doc/casl2_spec.html new file mode 100644 index 0000000..9863678 --- /dev/null +++ b/doc/casl2_spec.html @@ -0,0 +1,341 @@ +<html lang="en"> +<head> +<title>ã¢ã»ã³ãã©è¨èªã®ä»æ§</title> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8"> +<meta name="description" content="ã¢ã»ã³ãã©è¨èªã®ä»æ§"> +<meta name="generator" content="makeinfo 4.13"> +<link title="Top" rel="top" href="#Top"> +<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage"> +<!-- +Copyright (C) Information-technology Promotion Agency, Japan. All rights reserved 2012--> +<meta http-equiv="Content-Style-Type" content="text/css"> +<style type="text/css"><!-- + pre.display { font-family:inherit } + pre.format { font-family:inherit } + pre.smalldisplay { font-family:inherit; font-size:smaller } + pre.smallformat { font-family:inherit; font-size:smaller } + pre.smallexample { font-size:smaller } + pre.smalllisp { font-size:smaller } + span.sc { font-variant:small-caps } + span.roman { font-family:serif; font-weight:normal; } + span.sansserif { font-family:sans-serif; font-weight:normal; } +body { + margin-left: 6em; + margin-right: 12em; + color: black; + background-color: #EEE; +} + +h1, h2 { + margin-left: -2em; +} + +.node{ + margin-left: -3em; + color: inherit; + background-color: #DDF; +} + +.menu, .node { + color: inherit; + background-color: #DDF; +} + +h2 { + padding: 0.25em; + color: white; + background-color: navy; +} + +.contents { + background-color: #DDF; + border: 4px double #000; +} + +.contents h2 { + margin-left: 0; + color: black; + background-color: #DDF; +} + +.shortcontents { + background-color: #DDF; + border: 4px double #000; + } + +.shortcontents h2{ + display: none; +} + +.shortcontents a { + margin-right: 1em; +} + +h3, h4, h5 { + color: navy; + margin-left: -1em; +} + +h5 { + font-size: 100%; +} + +p { + line-height: 1.25em; + margin-top: 0; + margin-bottom: 0.5em; +} + +a:hover { + color: red; + text-decoration: underline; +} + +pre.example { + padding: 0.5em 1em 0.5em 1em; + color: #CCC; + background: black; + font-size: 90%; +} + +a { + text-decoration: none; +} + +blockquote { + line-height: 1.25em; + border: 1px solid #00F; +} + +kbd { + font-family: monospace; +} + +kbd, code, .file { + margin-left:0.5em; + margin-right: 0.5em; +} + +table, th, td { + border: 1px solid #CCC; + border-collapse: collapse; /* æ ç·ã®è¡¨ç¤ºæ¹æ³ */ +} + +table.cartouche, table.cartouche th, table.cartouche td { + border: none; +} + +pre.example .command, pre.example .option, pre.example kbd { + font-weight: bold; + font-family: monospace; + background-color: inherit; + color: white; + margin-left:0; + margin-right: 0; +} + +pre.example strong { + font: inherit; + border: 2px solid green; +} + +dt { + font-weight: bold; +} + +dfn { + font-style: normal; +}--></style> +</head> +<body> +<h1 class="settitle">ã¢ã»ã³ãã©è¨èªã®ä»æ§</h1> +<h2 class="chapter"><a name="TOC0"></a>1 ã·ã¹ãã COMETIIã®ä»æ§</h2> + +<h3 class="section"><a name="TOC1"></a>1.1 ãã¼ãã¦ã§ã¢ã®ä»æ§</h3> + + <ol type=1 start=1> +<li>1èªã¯16ãããã§ããã®ãããæ§æã¯ã次ã®ã¨ããã§ããã + + <pre class="verbatim"> ä¸ä½8ããã ä¸ä½8ããã + | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |ï¼ãããçªå·ï¼ + â + 符å·ï¼è² :1ãéè² :0ï¼ +</pre> + + <li>ä¸»è¨æ¶ã®å®¹éã¯65536èªã§ããã®ã¢ãã¬ã¹ã¯0ï½65535çªå°ã§ããã + + <li>æ°å¤ã¯ã16ãããã®2鲿°ã§è¡¨ç¾ãããè² æ°ã¯ã2ã®è£æ°ã§è¡¨ç¾ããã + + <li>å¶å¾¡æ¹å¼ã¯é次å¶å¾¡ã§ãå½ä»¤èªã¯1èªé·åã¯2èªé·ã§ããã + + <li>ã¬ã¸ã¹ã¿ã¨ãã¦ã<code>GR</code>ï¼16ãããï¼ã<code>SP</code>ï¼16ãããï¼ã<code>PR</code>ï¼16ãããï¼ã<code>FR</code>ï¼3ãããï¼ã® 4 種é¡ãããã + + <p><code>GR</code>ï¼æ±ç¨ã¬ã¸ã¹ã¿ãGeneral Registerï¼ã¯ã<code>GR0</code>ï½<code>GR7</code>ã®8åãããã +ç®è¡ãè«çãæ¯è¼ãã·ãããªã©ã®æ¼ç®ã«ç¨ããã +ãã®ãã¡ã<code>GR1</code>ï½<code>GR7</code>ã®ã¬ã¸ã¹ã¿ã¯ãææ¨ã¬ã¸ã¹ã¿ï¼index registerï¼ +ã¨ãã¦ã¢ãã¬ã¹ã®ä¿®é£¾ã«ãç¨ããã + + <p><code>SP</code>ï¼ã¹ã¿ãã¯ãã¤ã³ã¿ãStack Pointerï¼ã¯ã +ã¹ã¿ãã¯ã®æä¸æ®µã®ã¢ãã¬ã¹ãä¿æãã¦ããã + + <p><code>PR</code>ï¼ããã°ã©ã ã¬ã¸ã¹ã¿ãProgram Registerï¼ã¯ã +次ã«å®è¡ãã¹ãå½ä»¤èªã®å é ã¢ãã¬ã¹ãä¿æãã¦ããã + + <p><code>FR</code>ï¼ãã©ã°ã¬ã¸ã¹ã¿ãFlag Registerï¼ã¯ã +<code>OF</code>ï¼Overflow Flagï¼ã<code>SF</code>ï¼Sign Flagï¼ã<code>ZF</code>ï¼Zero Flagï¼ã¨å¼ã¶ +3åã®ããããããªããæ¼ç®å½ä»¤ãªã©ã®å®è¡ã«ãã£ã¦æ¬¡ã®å¤ãè¨å®ãããã +ãããã®å¤ã¯ãæ¡ä»¶ä»ãåå²å½ä»¤ã§åç §ãããã + + <dl> +<dt><code>OF</code><dd>ç®è¡æ¼ç®å½ä»¤ã®å ´åã¯ãæ¼ç®çµæã-32768ï½32767ã«åã¾ããªããªã£ãã¨ã1ã«ãªãã +ãã以å¤ã®ã¨ã0ã«ãªãã +è«çæ¼ç®å½ä»¤ã®å ´åã¯ãæ¼ç®çµæã0ï½65535ã«åã¾ããªããªã£ãã¨ã1ã«ãªãã +ãã以å¤ã®ã¨ã0ã«ãªãã + + <br><dt><code>SF</code><dd>æ¼ç®çµæã®ç¬¦å·ãè² ï¼ãããçªå·15ã1ï¼ã®ã¨ã1ããã以å¤ã®ã¨ã0ã«ãªãã + + <br><dt><code>ZF</code><dd>æ¼ç®çµæãé¶ï¼å ¨é¨ã®ãããã0ï¼ã®ã¨ã1ããã以å¤ã®ã¨ã0ã«ãªãã +</dl> + + <li>è«çå ç®åã¯è«çæ¸ç®ã¯ã被æ¼ç®ãã¼ã¿ã符å·ã®ãªãæ°å¤ã¨ã¿ãªãã¦ã +å ç®åã¯æ¸ç®ããã + </ol> + +<h3 class="section"><a name="TOC2"></a>1.2 å½ä»¤</h3> + + <p>å½ä»¤ã®å½¢å¼åã³ãã®æ©è½ã示ãã +ããã§ãä¸ã¤ã®å½ä»¤ã³ã¼ãã«å¯¾ã2種é¡ã®ãªãã©ã³ããããå ´åã +䏿®µã¯ã¬ã¸ã¹ã¿éã®å½ä»¤ã䏿®µã¯ã¬ã¸ã¹ã¿ã¨ä¸»è¨æ¶éã®å½ä»¤ã表ãã + + <ol type=1 start=1> +<li>ãã¼ããã¹ãã¢ããã¼ãã¢ãã¬ã¹å½ä»¤ + <p><table summary=""><tr align="left"><th valign="top" width="25%">å½ä»¤ </th><th valign="top" width="10%">æ¸ãæ¹ <br> å½ä»¤ã³ã¼ã </th><th valign="top" width="15%">æ¸ãæ¹ <br> ãªãã©ã³ã </th><th valign="top" width="30%">å½ä»¤ã®èª¬æ </th><th valign="top" width="20%">FRã®è¨å® +<br></th></tr><tr align="left"><td valign="top" width="25%">ãã¼ã <br> LoaD </td><td valign="top" width="10%"><code>LD</code> </td><td valign="top" width="15%"><code>r1,r2</code> <br> —— <br> <code>r,adr[,x]</code> </td><td valign="top" width="30%"><code>r1 â (r2)</code> <br> —— <br> <code>r â (å®å¹ã¢ãã¬ã¹)</code> </td><td valign="top" width="20%">â <br> ãã ãã<code>OF</code>ã«ã¯<code>0</code>ãè¨å®ãããã +<br></td></tr><tr align="left"><td valign="top" width="25%">ã¹ã㢠<br> STore </td><td valign="top" width="10%"><code>ST</code> </td><td valign="top" width="15%"><code>r,adr[,x]</code> </td><td valign="top" width="30%"><code>å®å¹ã¢ãã¬ã¹ â (r)</code> </td><td valign="top" width="20%">– +<br></td></tr><tr align="left"><td valign="top" width="25%">ãã¼ãã¢ãã¬ã¹ <br> Load ADdress </td><td valign="top" width="10%"><code>LAD</code> </td><td valign="top" width="15%"><code>r,adr[,x]</code> </td><td valign="top" width="30%"><code>r â å®å¹ã¢ãã¬ã¹</code> </td><td valign="top" width="20%">– + <br></td></tr></table> + + <li>ç®è¡ãè«çæ¼ç®å½ä»¤ + <p><table summary=""><tr align="left"><th valign="top" width="25%">å½ä»¤ </th><th valign="top" width="10%">æ¸ãæ¹ <br> å½ä»¤ã³ã¼ã </th><th valign="top" width="15%">æ¸ãæ¹ <br> ãªãã©ã³ã </th><th valign="top" width="30%">å½ä»¤ã®èª¬æ </th><th valign="top" width="20%">FRã®è¨å® +<br></th></tr><tr align="left"><td valign="top" width="25%">ç®è¡å ç® <br> ADD Arithmetic </td><td valign="top" width="10%"><code>ADDA</code> </td><td valign="top" width="15%"><code>r1,r2</code> <br> —— <br> <code>r,adr[,x]</code> </td><td valign="top" width="30%"><code>r1 â (r1) + (r2)</code> <br> —— <br> <code>r â (r) + (å®å¹ã¢ãã¬ã¹)</code> </td><td valign="top" width="20%">â +<br></td></tr><tr align="left"><td valign="top" width="25%">è«çå ç® <br> ADD Logical </td><td valign="top" width="10%"><code>ADDL</code> </td><td valign="top" width="15%"><code>r1,r2</code> <br> —— <br> <code>r,adr[,x]</code> </td><td valign="top" width="30%"><code>r1 â (r1) +L (r2)</code> <br> —— <br> <code>r â (r) +L (å®å¹ã¢ãã¬ã¹)</code> </td><td valign="top" width="20%">â +<br></td></tr><tr align="left"><td valign="top" width="25%">ç®è¡æ¸ç® <br> SUBtract Arithmetic </td><td valign="top" width="10%"><code>SUBA</code> </td><td valign="top" width="15%"><code>r1,r2</code> <br> —— <br> <code>r,adr[,x]</code> </td><td valign="top" width="30%"><code>r1 â (r1) - (r2)</code> <br> —— <br> <code>r â (r) - (å®å¹ã¢ãã¬ã¹)</code> </td><td valign="top" width="20%">â +<br></td></tr><tr align="left"><td valign="top" width="25%">è«çæ¸ç® <br> SUBtract Logical </td><td valign="top" width="10%"><code>SUBL</code> </td><td valign="top" width="15%"><code>r1,r2</code> <br> —— <br> <code>r,adr[,x]</code> </td><td valign="top" width="30%"><code>r1 â (r1) - L(r2)</code> <br> —— <br> <code>r â (r) - L(å®å¹ã¢ãã¬ã¹)</code> </td><td valign="top" width="20%">â +<br></td></tr><tr align="left"><td valign="top" width="25%">è«çç© <br> AND </td><td valign="top" width="10%"><code>AND</code> </td><td valign="top" width="15%"><code>r1,r2</code> <br> —— <br> <code>r,adr[,x]</code> </td><td valign="top" width="30%"><code>r1 â (r1) AND (r2)</code> <br> —— <br> <code>r â (r) AND (å®å¹ã¢ãã¬ã¹)</code> </td><td valign="top" width="20%">â <br> ãã ãã<code>OF</code>ã«ã¯<code>0</code>ãè¨å®ãããã +<br></td></tr><tr align="left"><td valign="top" width="25%">è«çå <br> OR </td><td valign="top" width="10%"><code>OR</code> </td><td valign="top" width="15%"><code>r1,r2</code> <br> —— <br> <code>r,adr[,x]</code> </td><td valign="top" width="30%"><code>r1 â (r1) OR (r2)</code> <br> —— <br> <code>r â (r) OR (å®å¹ã¢ãã¬ã¹)</code> </td><td valign="top" width="20%">â <br> ãã ãã<code>OF</code>ã«ã¯<code>0</code>ãè¨å®ãããã +<br></td></tr><tr align="left"><td valign="top" width="25%">æä»çè«çå <br> eXclusive OR </td><td valign="top" width="10%"><code>XOR</code> </td><td valign="top" width="15%"><code>r1,r2</code> <br> —— <br> <code>r,adr[,x]</code> </td><td valign="top" width="30%"><code>r1 â (r1) XOR (r2)</code> <br> —— <br> <code>r â (r) XOR (å®å¹ã¢ãã¬ã¹)</code> </td><td valign="top" width="20%">â <br> ãã ãã<code>OF</code>ã«ã¯<code>0</code>ãè¨å®ãããã + <br></td></tr></table> + + <li>æ¯è¼æ¼ç®å½ä»¤ + <p><table summary=""><tr align="left"><th valign="top" width="25%">å½ä»¤ </th><th valign="top" width="10%">æ¸ãæ¹ <br> å½ä»¤ã³ã¼ã </th><th valign="top" width="15%">æ¸ãæ¹ <br> ãªãã©ã³ã </th><th valign="top" width="30%">å½ä»¤ã®èª¬æ </th><th valign="top" width="20%">FRã®è¨å® +<br></th></tr><tr align="left"><td valign="top" width="25%">ç®è¡æ¯è¼ <br> ComPare Arithmetic </td><td valign="top" width="10%"><code>CPA</code></td><td valign="top" width="15%"><code>r1,r2</code> <br> —— <br> <code>r,adr[,x]</code> </td><td valign="top" width="30%"><code>(r1)</code>ã¨<code>(r2)</code>ãåã¯<code>(r)</code>ã¨<code>(å®å¹ã¢ãã¬ã¹)</code>ã®ç®è¡æ¯è¼ãè¡ããæ¯è¼çµæã«ãã£ã¦ã<code>FR</code>ã«æ¬¡ã®å¤ãè¨å®ããã + <dl> +<dt><dfn>æ¯è¼çµæ</dfn><dd>FRã®å¤ +<br><dt><code>(r1) > (r2)</code><dfn> å㯠</dfn><code>(r) > (å®å¹ã¢ãã¬ã¹)</code><dd><code>SF:0, ZF:0</code> +<br><dt><code>(r1) = (r2)</code><dfn> å㯠</dfn><code>(r) = (å®å¹ã¢ãã¬ã¹)</code><dd><code>SF:0, ZF:1</code> +<br><dt><code>(r1) < (r2)</code><dfn> å㯠</dfn><code>(r) < (å®å¹ã¢ãã¬ã¹)</code><dd><code>SF:1, ZF:0</code> +</dl> + </td><td valign="top" width="20%">â <br> ãã ãã<code>OF</code>ã«ã¯<code>0</code>ãè¨å®ãããã +<br></td></tr><tr align="left"><td valign="top" width="25%">è«çæ¯è¼ <br> ComPare Logical </td><td valign="top" width="10%"><code>CPL</code> </td><td valign="top" width="15%"><code>r1,r2</code> <br> —— <br> <code>r,adr[,x]</code> </td><td valign="top" width="30%"><code>(r1)</code>ã¨<code>(r2)</code>ãåã¯<code>(r)</code>ã¨<code>(å®å¹ã¢ãã¬ã¹)</code>ã®è«çæ¯è¼ãè¡ããæ¯è¼çµæã«ãã£ã¦ã<code>FR</code>ã«æ¬¡ã®å¤ãè¨å®ããã + <dl> +<dt><dfn>æ¯è¼çµæ</dfn><dd>FRã®å¤ +<br><dt><code>(r1) > (r2)</code><dfn> å㯠</dfn><code>(r) > (å®å¹ã¢ãã¬ã¹)</code><dd><code>SF:0</code>, <code>ZF:0</code> +<br><dt><code>(r1) = (r2)</code><dfn> å㯠</dfn><code>(r) = (å®å¹ã¢ãã¬ã¹)</code><dd><code>SF:0</code>, <code>ZF:1</code> +<br><dt><code>(r1) < (r2)</code><dfn> å㯠</dfn><code>(r) < (å®å¹ã¢ãã¬ã¹)</code><dd><code>SF:1</code>, <code>ZF:0</code> +</dl> + </td><td valign="top" width="20%">â <br> ãã ãã<code>OF</code>ã«ã¯<code>0</code>ãè¨å®ãããã + <br></td></tr></table> + + <li>ã·ããæ¼ç®å½ä»¤ + <p><table summary=""><tr align="left"><th valign="top" width="25%">å½ä»¤ </th><th valign="top" width="10%">æ¸ãæ¹ <br> å½ä»¤ã³ã¼ã </th><th valign="top" width="15%">æ¸ãæ¹ <br> ãªãã©ã³ã </th><th valign="top" width="30%">å½ä»¤ã®èª¬æ </th><th valign="top" width="20%">FRã®è¨å® +<br></th></tr><tr align="left"><td valign="top" width="25%">ç®è¡å·¦ã·ãã <br> Shift Left Arithmetic </td><td valign="top" width="10%"><code>SLA</code> </td><td valign="top" width="15%"><code>r,adr[,x]</code> </td><td valign="top" width="30%">符å·ãé¤ã<code>(r)</code>ãå®å¹ã¢ãã¬ã¹ã§æå®ãããããæ°ã ãå·¦ã«ã·ãããããã·ããã®çµæã空ãããããä½ç½®ã«ã¯ã<code>0</code>ãå ¥ãã </td><td valign="top" width="20%">â <br> ãã ãã<code>OF</code>ã«ã¯ã¬ã¸ã¹ã¿ããæå¾ã«éãåºããããããã®å¤ãè¨å®ãããã +<br></td></tr><tr align="left"><td valign="top" width="25%">ç®è¡å³ã·ãã <br> Shift Right Arithmetic </td><td valign="top" width="10%"><code>SRA</code> </td><td valign="top" width="15%"><code>r,adr[,x]</code> </td><td valign="top" width="30%">符å·ãé¤ã<code>(r)</code>ãå®å¹ã¢ãã¬ã¹ã§æå®ãããããæ°ã ãå³ã«ã·ãããããã·ããã®çµæã空ãããããä½ç½®ã«ã¯ã符å·ã¨åããã®ãå ¥ãã </td><td valign="top" width="20%">â <br> ãã ãã<code>OF</code>ã«ã¯ã¬ã¸ã¹ã¿ããæå¾ã«éãåºããããããã®å¤ãè¨å®ãããã +<br></td></tr><tr align="left"><td valign="top" width="25%">è«çå·¦ã·ãã <br> Shift Left Logical </td><td valign="top" width="10%"><code>SLL</code> </td><td valign="top" width="15%"><code>r,adr[,x]</code> </td><td valign="top" width="30%">符å·ãå«ã¿<code>(r)</code>ãå®å¹ã¢ãã¬ã¹ã§æå®ãããããæ°ã ãå·¦ã«ã·ãããããã·ããã®çµæ,空ãããããä½ç½®ã«ã¯<code>0</code>ãå ¥ãã </td><td valign="top" width="20%">â <br> ãã ãã<code>OF</code>ã«ã¯ã¬ã¸ã¹ã¿ããæå¾ã«éãåºããããããã®å¤ãè¨å®ãããã +<br></td></tr><tr align="left"><td valign="top" width="25%">è«çå³ã·ãã <br> Shift Right Logical </td><td valign="top" width="10%"><code>SRL</code> </td><td valign="top" width="15%"><code>r,adr[,x]</code> </td><td valign="top" width="30%">符å·ãå«ã¿<code>(r)</code>ãå®å¹ã¢ãã¬ã¹ã§æå®ãããããæ°ã ãå³ã«ã·ãããããã·ããã®çµæã空ãããããä½ç½®ã«ã¯<code>0</code>ãå ¥ãã </td><td valign="top" width="20%">â <br> ãã ãã<code>OF</code>ã«ã¯ã¬ã¸ã¹ã¿ããæå¾ã«éãåºããããããã®å¤ãè¨å®ãããã + <br></td></tr></table> + + <li>åå²å½ä»¤ + <p><table summary=""><tr align="left"><th valign="top" width="25%">å½ä»¤ </th><th valign="top" width="10%">æ¸ãæ¹ <br> å½ä»¤ã³ã¼ã </th><th valign="top" width="15%">æ¸ãæ¹ <br> ãªãã©ã³ã </th><th valign="top" width="30%">å½ä»¤ã®èª¬æ </th><th valign="top" width="20%">FRã®è¨å® +<br></th></tr><tr align="left"><td valign="top" width="25%">æ£åå² <br> Jump on Plus </td><td valign="top" width="10%"><code>JPL</code> </td><td valign="top" width="15%"><code>adr[,x]</code> </td><td valign="top" width="30%"><code>FR</code>ã®å¤ã«ãã£ã¦ãå®å¹ã¢ãã¬ã¹ã«åå²ãããåå²ããªãã¨ãã¯ã次ã®å½ä»¤ã«é²ãã + <dl> +<dt><dfn>åå²ããã¨ãã®</dfn><code>FR</code><dfn>ã®å¤</dfn><dd><code>SF:0, ZF:0</code> +</dl> + </td><td valign="top" width="20%">– +<br></td></tr><tr align="left"><td valign="top" width="25%">è² åå² <br> Jump on MINUS </td><td valign="top" width="10%"><code>JMI</code> </td><td valign="top" width="15%"><code>adr[,x]</code> </td><td valign="top" width="30%"><code>FR</code>ã®å¤ã«ãã£ã¦ãå®å¹ã¢ãã¬ã¹ã«åå²ãããåå²ããªãã¨ãã¯ã次ã®å½ä»¤ã«é²ãã + <dl> +<dt><dfn>åå²ããã¨ãã®</dfn><code>FR</code><dfn>ã®å¤</dfn><dd><code>SF:1</code> +</dl> + </td><td valign="top" width="20%">– +<br></td></tr><tr align="left"><td valign="top" width="25%">éé¶åå² <br> Jump on Non Zero </td><td valign="top" width="10%"><code>JNZ</code> </td><td valign="top" width="15%"><code>adr[,x]</code> </td><td valign="top" width="30%"><code>FR</code>ã®å¤ã«ãã£ã¦ãå®å¹ã¢ãã¬ã¹ã«åå²ãããåå²ããªãã¨ãã¯ã次ã®å½ä»¤ã«é²ãã + <dl> +<dt><dfn>åå²ããã¨ãã®</dfn><code>FR</code><dfn>ã®å¤</dfn><dd><code>ZF:0</code> +</dl> + </td><td valign="top" width="20%">– +<br></td></tr><tr align="left"><td valign="top" width="25%">é¶åå² <br> Jump on ZEro </td><td valign="top" width="10%"><code>JZE</code> </td><td valign="top" width="15%"><code>adr[,x]</code> </td><td valign="top" width="30%"><code>FR</code>ã®å¤ã«ãã£ã¦ãå®å¹ã¢ãã¬ã¹ã«åå²ãããåå²ããªãã¨ãã¯ã次ã®å½ä»¤ã«é²ãã + <dl> +<dt><dfn>åå²ããã¨ãã®</dfn><code>FR</code><dfn>ã®å¤</dfn><dd><code>ZF:1</code> +</dl> + </td><td valign="top" width="20%">– +<br></td></tr><tr align="left"><td valign="top" width="25%">ãªã¼ãã¼ããã¼åå² <br> Jump on OVerflow </td><td valign="top" width="10%"><code>JOV</code> </td><td valign="top" width="15%"><code>adr[,x]</code> </td><td valign="top" width="30%"><code>FR</code>ã®å¤ã«ãã£ã¦ãå®å¹ã¢ãã¬ã¹ã«åå²ãããåå²ããªãã¨ãã¯ã次ã®å½ä»¤ã«é²ãã + <dl> +<dt><dfn>åå²ããã¨ãã®</dfn><code>FR</code><dfn>ã®å¤</dfn><dd><code>OF:1</code> +</dl> + </td><td valign="top" width="20%">– +<br></td></tr><tr align="left"><td valign="top" width="25%">ç¡æ¡ä»¶åå² <br> unconditional Jump </td><td valign="top" width="10%"><code>JUMP</code> </td><td valign="top" width="15%"><code>adr[,x]</code> </td><td valign="top" width="30%">ç¡æ¡ä»¶ã«å®å¹ã¢ãã¬ã¹ã«åå²ããã </td><td valign="top" width="20%">– + <br></td></tr></table> + + <li>ã¹ã¿ãã¯æä½å½ä»¤ + <p><table summary=""><tr align="left"><th valign="top" width="25%">å½ä»¤ </th><th valign="top" width="10%">æ¸ãæ¹ <br> å½ä»¤ã³ã¼ã </th><th valign="top" width="15%">æ¸ãæ¹ <br> ãªãã©ã³ã </th><th valign="top" width="30%">å½ä»¤ã®èª¬æ </th><th valign="top" width="20%">FRã®è¨å® +<br></th></tr><tr align="left"><td valign="top" width="25%">ããã·ã¥ <br> PUSH </td><td valign="top" width="10%"><code>PUSH</code> </td><td valign="top" width="15%"><code>adr[,x]</code> </td><td valign="top" width="30%"><code>SP â (SP)-L1</code>, <br> <code>(SP)â (å®å¹ã¢ãã¬ã¹)</code> </td><td valign="top" width="20%">– +<br></td></tr><tr align="left"><td valign="top" width="25%">ããã <br> POP </td><td valign="top" width="10%"><code>POP</code> </td><td valign="top" width="15%"><code>r</code> </td><td valign="top" width="30%"><code>r â ( (SP) )</code>, <br> <code>SP â (SP) +L 1</code> </td><td valign="top" width="20%">– + <br></td></tr></table> + + <li>ã³ã¼ã«ããªã¿ã¼ã³å½ä»¤ + <p><table summary=""><tr align="left"><th valign="top" width="25%">å½ä»¤ </th><th valign="top" width="10%">æ¸ãæ¹ <br> å½ä»¤ã³ã¼ã </th><th valign="top" width="15%">æ¸ãæ¹ <br> ãªãã©ã³ã </th><th valign="top" width="30%">å½ä»¤ã®èª¬æ </th><th valign="top" width="20%">FRã®è¨å® +<br></th></tr><tr align="left"><td valign="top" width="25%">ã³ã¼ã« <br> CALL subroutine </td><td valign="top" width="10%"><code>CALL</code> </td><td valign="top" width="15%"><code>adr[,x]</code> </td><td valign="top" width="30%"><code>SP â (SP)-L 1</code>, <br> <code>(SP) â (PR)</code>, <br> <code>PR â å®å¹ã¢ãã¬ã¹</code> </td><td valign="top" width="20%">– +<br></td></tr><tr align="left"><td valign="top" width="25%">ãªã¿ã¼ã³ <br> RETrun form subroutine </td><td valign="top" width="10%"><code>RET</code> </td><td valign="top" width="15%"></td><td valign="top" width="30%"><code>PR â ( (SP) )</code>, <br> <code>SP â (SP) +L 1</code> </td><td valign="top" width="20%">– + <br></td></tr></table> + + <li>ãã®ä» + <p><table summary=""><tr align="left"><th valign="top" width="25%">å½ä»¤ </th><th valign="top" width="10%">æ¸ãæ¹ <br> å½ä»¤ã³ã¼ã </th><th valign="top" width="15%">æ¸ãæ¹ <br> ãªãã©ã³ã </th><th valign="top" width="30%">å½ä»¤ã®èª¬æ </th><th valign="top" width="20%">FRã®è¨å® +<br></th></tr><tr align="left"><td valign="top" width="25%">ã¹ã¼ãã¼ãã¤ã¶ã³ã¼ã« <br> SuperVisor CALL </td><td valign="top" width="10%"><code>SVC</code> </td><td valign="top" width="15%"><code>adr[,x]</code> </td><td valign="top" width="30%">å®å¹ã¢ãã¬ã¹ã弿°ã¨ãã¦å²åºããè¡ããå®è¡å¾ã®<code>GR</code>ã¨<code>FR</code>ã¯ä¸å®ã¨ãªãã </td><td valign="top" width="20%">– +<br></td></tr><tr align="left"><td valign="top" width="25%">ãã¼ãªãã¬ã¼ã·ã§ã³ <br> No operation </td><td valign="top" width="10%"><code>NOP</code> </td><td valign="top" width="15%"></td><td valign="top" width="30%">ä½ãããªãã </td><td valign="top" width="20%">– + <br></td></tr></table> + </ol> + + <ul> +<li>注 + <dl> +<dt><code>r</code><dfn>, </dfn><code>r1</code><dfn>, </dfn><code>r2</code><dd>ãããã <code>GR</code>ã示ããæå®ã§ãã<code>GR</code>ã¯<code>GR0</code>ï½<code>GR7</code> + + <br><dt><code>adr</code><dd>ã¢ãã¬ã¹ã示ããæå®ã§ããå¤ã®ç¯å²ã¯<code>0</code>ï½<code>65535</code> + + <br><dt><code>x</code><dd>ææ¨ã¬ã¸ã¹ã¿ã¨ãã¦ç¨ãã<code>GR</code>ã示ããæå®ã§ãã<code>GR</code>ã¯<code>GR1</code>ï½<code>GR7</code> + + <br><dt><code>[ ]</code><dd>[ ]å ã®æå®ã¯çç¥ã§ãããã¨ã示ãã + + <br><dt><code>( )</code><dd>( )å ã®ã¬ã¸ã¹ã¿åã¯ã¢ãã¬ã¹ã«æ ¼ç´ããã¦ããå 容ã示ãã + + <br><dt><code>å®å¹ã¢ãã¬ã¹</code><dd><code>adr</code>ã¨<code>x</code>ã®å 容ã¨ã®è«çå ç®å¤åã¯ãã®å¤ã示ãçªå° + + <br><dt><code>â</code><dd>æ¼ç®çµæãã左辺ã®ã¬ã¸ã¹ã¿åã¯ã¢ãã¬ã¹ã«æ ¼ç´ãããã¨ã示ãã + + <br><dt><code>+L</code><dfn>, </dfn><code>-L</code><dd>è«çå ç®ãè«çæ¸ç®ã示ãã + + <br><dt><code>FR</code><dfn>ã®è¨å®</dfn><dd> + <ul> +<li>â: è¨å®ããããã¨ã示ãã +<li>ã¼: å®è¡åã®å¤ãä¿æããããã¨ã示ãã +</ul> + </dl> + </ul> + +</body></html> + +<!-- + +Local Variables: +coding: utf-8 +End: + +--> diff --git a/doc/casl2_spec.texi b/doc/casl2_spec.texi new file mode 100644 index 0000000..225dc04 --- /dev/null +++ b/doc/casl2_spec.texi @@ -0,0 +1,1310 @@ +input texinfo @c -*-texinfo-*- +@c %**start of header +@ifnottex +@documentlanguage ja_JP +@end ifnottex +@setfilename casl2_spec +@documentencoding UTF-8 +@settitle ã¢ã»ã³ãã©è¨èªã®ä»æ§ +@firstparagraphindent insert +@paragraphindent 1 +@ifhtml +@exampleindent 0 +@end ifhtml +@c %**end of header + +@copying +Copyright @copyright{} Information-technology Promotion Agency, Japan. All rights reserved 2012 +@end copying + +@titlepage +@title ã¢ã»ã³ãã©è¨èªã®ä»æ§ +@subtitle ã試é¨ã§ä½¿ç¨ããæ å ±å¦çç¨èªã»ããã°ã©ã è¨èªãªã© Ver 2.2ï¼å¹³æ24å¹´5æ22æ¥ï¼ å¥ç´1ããã +@end titlepage + +@chapter ã·ã¹ãã COMETIIã®ä»æ§ + +@section ãã¼ãã¦ã§ã¢ã®ä»æ§ + +@enumerate +@item +1èªã¯16ãããã§ããã®ãããæ§æã¯ã次ã®ã¨ããã§ããã + +@verbatim + ä¸ä½8ããã ä¸ä½8ããã +| 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |ï¼ãããçªå·ï¼ + â +符å·ï¼è² :1ãéè² :0ï¼ +@end verbatim + +@item +ä¸»è¨æ¶ã®å®¹éã¯65536èªã§ããã®ã¢ãã¬ã¹ã¯0ï½65535çªå°ã§ããã + +@item +æ°å¤ã¯ã16ãããã®2鲿°ã§è¡¨ç¾ãããè² æ°ã¯ã2ã®è£æ°ã§è¡¨ç¾ããã + +@item +å¶å¾¡æ¹å¼ã¯é次å¶å¾¡ã§ãå½ä»¤èªã¯1èªé·åã¯2èªé·ã§ããã + +@item +ã¬ã¸ã¹ã¿ã¨ãã¦ã@code{GR}ï¼16ãããï¼ã@code{SP}ï¼16ãããï¼ã@code{PR}ï¼16ãããï¼ã@code{FR}ï¼3ãããï¼ã® 4 種é¡ãããã + +@code{GR}ï¼æ±ç¨ã¬ã¸ã¹ã¿ãGeneral Registerï¼ã¯ã@code{GR0}ï½@code{GR7}ã®8åãããã +ç®è¡ãè«çãæ¯è¼ãã·ãããªã©ã®æ¼ç®ã«ç¨ããã +ãã®ãã¡ã@code{GR1}ï½@code{GR7}ã®ã¬ã¸ã¹ã¿ã¯ãææ¨ã¬ã¸ã¹ã¿ï¼index registerï¼ +ã¨ãã¦ã¢ãã¬ã¹ã®ä¿®é£¾ã«ãç¨ããã + +@code{SP}ï¼ã¹ã¿ãã¯ãã¤ã³ã¿ãStack Pointerï¼ã¯ã +ã¹ã¿ãã¯ã®æä¸æ®µã®ã¢ãã¬ã¹ãä¿æãã¦ããã + +@code{PR}ï¼ããã°ã©ã ã¬ã¸ã¹ã¿ãProgram Registerï¼ã¯ã +次ã«å®è¡ãã¹ãå½ä»¤èªã®å é ã¢ãã¬ã¹ãä¿æãã¦ããã + +@code{FR}ï¼ãã©ã°ã¬ã¸ã¹ã¿ãFlag Registerï¼ã¯ã +@code{OF}ï¼Overflow Flagï¼ã@code{SF}ï¼Sign Flagï¼ã@code{ZF}ï¼Zero Flagï¼ã¨å¼ã¶ +3åã®ããããããªããæ¼ç®å½ä»¤ãªã©ã®å®è¡ã«ãã£ã¦æ¬¡ã®å¤ãè¨å®ãããã +ãããã®å¤ã¯ãæ¡ä»¶ä»ãåå²å½ä»¤ã§åç §ãããã + +@table @code +@item OF +ç®è¡æ¼ç®å½ä»¤ã®å ´åã¯ãæ¼ç®çµæã-32768ï½32767ã«åã¾ããªããªã£ãã¨ã1ã«ãªãã +ãã以å¤ã®ã¨ã0ã«ãªãã +è«çæ¼ç®å½ä»¤ã®å ´åã¯ãæ¼ç®çµæã0ï½65535ã«åã¾ããªããªã£ãã¨ã1ã«ãªãã +ãã以å¤ã®ã¨ã0ã«ãªãã + +@item SF +æ¼ç®çµæã®ç¬¦å·ãè² ï¼ãããçªå·15ã1ï¼ã®ã¨ã1ããã以å¤ã®ã¨ã0ã«ãªãã + +@item ZF +æ¼ç®çµæãé¶ï¼å ¨é¨ã®ãããã0ï¼ã®ã¨ã1ããã以å¤ã®ã¨ã0ã«ãªãã +@end table + +@item +è«çå ç®åã¯è«çæ¸ç®ã¯ã被æ¼ç®ãã¼ã¿ã符å·ã®ãªãæ°å¤ã¨ã¿ãªãã¦ã +å ç®åã¯æ¸ç®ããã +@end enumerate + +@section å½ä»¤ + +å½ä»¤ã®å½¢å¼åã³ãã®æ©è½ã示ãã +ããã§ãä¸ã¤ã®å½ä»¤ã³ã¼ãã«å¯¾ã2種é¡ã®ãªãã©ã³ããããå ´åã +䏿®µã¯ã¬ã¸ã¹ã¿éã®å½ä»¤ã䏿®µã¯ã¬ã¸ã¹ã¿ã¨ä¸»è¨æ¶éã®å½ä»¤ã表ãã + +@enumerate +@item ãã¼ããã¹ãã¢ããã¼ãã¢ãã¬ã¹å½ä»¤ +@multitable @columnfractions .25 .10 .15 .30 .20 +@headitem å½ä»¤ @tab æ¸ãæ¹ @* å½ä»¤ã³ã¼ã @tab æ¸ãæ¹ @* ãªãã©ã³ã @tab å½ä»¤ã®èª¬æ @tab FRã®è¨å® +@item ãã¼ã @* LoaD @tab @code{LD} @tab @code{r1,r2} @* ----- @* @code{r,adr[,x]} @tab @code{r1 â (r2)} @* ----- @* @code{r â (å®å¹ã¢ãã¬ã¹)} @tab â @* ãã ãã@code{OF}ã«ã¯@code{0}ãè¨å®ãããã +@item ã¹ã㢠@* STore @tab @code{ST} @tab @code{r,adr[,x]} @tab @code{å®å¹ã¢ãã¬ã¹ â (r)} @tab -- +@item ãã¼ãã¢ãã¬ã¹ @* Load ADdress @tab @code{LAD} @tab @code{r,adr[,x]} @tab @code{r â å®å¹ã¢ãã¬ã¹} @tab -- +@end multitable + +@item ç®è¡ãè«çæ¼ç®å½ä»¤ +@multitable @columnfractions .25 .10 .15 .30 .20 +@headitem å½ä»¤ @tab æ¸ãæ¹ @* å½ä»¤ã³ã¼ã @tab æ¸ãæ¹ @* ãªãã©ã³ã @tab å½ä»¤ã®èª¬æ @tab FRã®è¨å® +@item ç®è¡å ç® @* ADD Arithmetic @tab @code{ADDA} @tab @code{r1,r2} @* ----- @* @code{r,adr[,x]} @tab @code{r1 â (r1) + (r2)} @* ----- @* @code{r â (r) + (å®å¹ã¢ãã¬ã¹)} @tab â +@item è«çå ç® @* ADD Logical @tab @code{ADDL} @tab @code{r1,r2} @* ----- @* @code{r,adr[,x]} @tab @code{r1 â (r1) +L (r2)} @* ----- @* @code{r â (r) +L (å®å¹ã¢ãã¬ã¹)} @tab â +@item ç®è¡æ¸ç® @* SUBtract Arithmetic @tab @code{SUBA} @tab @code{r1,r2} @* ----- @* @code{r,adr[,x]} @tab @code{r1 â (r1) - (r2)} @* ----- @* @code{r â (r) - (å®å¹ã¢ãã¬ã¹)} @tab â +@item è«çæ¸ç® @* SUBtract Logical @tab @code{SUBL} @tab @code{r1,r2} @* ----- @* @code{r,adr[,x]} @tab @code{r1 â (r1) - L(r2)} @* ----- @* @code{r â (r) - L(å®å¹ã¢ãã¬ã¹)} @tab â +@item è«çç© @* AND @tab @code{AND} @tab @code{r1,r2} @* ----- @* @code{r,adr[,x]} @tab @code{r1 â (r1) AND (r2)} @* ----- @* @code{r â (r) AND (å®å¹ã¢ãã¬ã¹)} @tab â @* ãã ãã@code{OF}ã«ã¯@code{0}ãè¨å®ãããã +@item è«çå @* OR @tab @code{OR} @tab @code{r1,r2} @* ----- @* @code{r,adr[,x]} @tab @code{r1 â (r1) OR (r2)} @* ----- @* @code{r â (r) OR (å®å¹ã¢ãã¬ã¹)} @tab â @* ãã ãã@code{OF}ã«ã¯@code{0}ãè¨å®ãããã +@item æä»çè«çå @* eXclusive OR @tab @code{XOR} @tab @code{r1,r2} @* ----- @* @code{r,adr[,x]} @tab @code{r1 â (r1) XOR (r2)} @* ----- @* @code{r â (r) XOR (å®å¹ã¢ãã¬ã¹)} @tab â @* ãã ãã@code{OF}ã«ã¯@code{0}ãè¨å®ãããã +@end multitable + +@item æ¯è¼æ¼ç®å½ä»¤ +@multitable @columnfractions .25 .10 .15 .30 .20 +@headitem å½ä»¤ @tab æ¸ãæ¹ @* å½ä»¤ã³ã¼ã @tab æ¸ãæ¹ @* ãªãã©ã³ã @tab å½ä»¤ã®èª¬æ @tab FRã®è¨å® +@item ç®è¡æ¯è¼ @* ComPare Arithmetic @tab @code{CPA}@tab @code{r1,r2} @* ----- @* @code{r,adr[,x]} @tab @code{(r1)}ã¨@code{(r2)}ãåã¯@code{(r)}ã¨@code{(å®å¹ã¢ãã¬ã¹)}ã®ç®è¡æ¯è¼ãè¡ããæ¯è¼çµæã«ãã£ã¦ã@code{FR}ã«æ¬¡ã®å¤ãè¨å®ããã +@table @dfn +@item æ¯è¼çµæ +FRã®å¤ +@item @code{(r1) > (r2)} å㯠@code{(r) > (å®å¹ã¢ãã¬ã¹)} +@code{SF:0, ZF:0} +@item @code{(r1) = (r2)} å㯠@code{(r) = (å®å¹ã¢ãã¬ã¹)} +@code{SF:0, ZF:1} +@item @code{(r1) < (r2)} å㯠@code{(r) < (å®å¹ã¢ãã¬ã¹)} +@code{SF:1, ZF:0} +@end table +@tab â @* ãã ãã@code{OF}ã«ã¯@code{0}ãè¨å®ãããã +@item è«çæ¯è¼ @* ComPare Logical @tab @code{CPL} @tab @code{r1,r2} @* ----- @* @code{r,adr[,x]} @tab @code{(r1)}ã¨@code{(r2)}ãåã¯@code{(r)}ã¨@code{(å®å¹ã¢ãã¬ã¹)}ã®è«çæ¯è¼ãè¡ããæ¯è¼çµæã«ãã£ã¦ã@code{FR}ã«æ¬¡ã®å¤ãè¨å®ããã +@table @dfn +@item æ¯è¼çµæ +FRã®å¤ +@item @code{(r1) > (r2)} å㯠@code{(r) > (å®å¹ã¢ãã¬ã¹)} +@code{SF:0}, @code{ZF:0} +@item @code{(r1) = (r2)} å㯠@code{(r) = (å®å¹ã¢ãã¬ã¹)} +@code{SF:0}, @code{ZF:1} +@item @code{(r1) < (r2)} å㯠@code{(r) < (å®å¹ã¢ãã¬ã¹)} +@code{SF:1}, @code{ZF:0} +@end table +@tab â @* ãã ãã@code{OF}ã«ã¯@code{0}ãè¨å®ãããã +@end multitable + +@item ã·ããæ¼ç®å½ä»¤ +@multitable @columnfractions .25 .10 .15 .30 .20 +@headitem å½ä»¤ @tab æ¸ãæ¹ @* å½ä»¤ã³ã¼ã @tab æ¸ãæ¹ @* ãªãã©ã³ã @tab å½ä»¤ã®èª¬æ @tab FRã®è¨å® +@item ç®è¡å·¦ã·ãã @* Shift Left Arithmetic @tab @code{SLA} @tab @code{r,adr[,x]} @tab 符å·ãé¤ã@code{(r)}ãå®å¹ã¢ãã¬ã¹ã§æå®ãããããæ°ã ãå·¦ã«ã·ãããããã·ããã®çµæã空ãããããä½ç½®ã«ã¯ã@code{0}ãå ¥ãã @tab â @* ãã ãã@code{OF}ã«ã¯ã¬ã¸ã¹ã¿ããæå¾ã«éãåºããããããã®å¤ãè¨å®ãããã +@item ç®è¡å³ã·ãã @* Shift Right Arithmetic @tab @code{SRA} @tab @code{r,adr[,x]} @tab 符å·ãé¤ã@code{(r)}ãå®å¹ã¢ãã¬ã¹ã§æå®ãããããæ°ã ãå³ã«ã·ãããããã·ããã®çµæã空ãããããä½ç½®ã«ã¯ã符å·ã¨åããã®ãå ¥ãã @tab â @* ãã ãã@code{OF}ã«ã¯ã¬ã¸ã¹ã¿ããæå¾ã«éãåºããããããã®å¤ãè¨å®ãããã +@item è«çå·¦ã·ãã @* Shift Left Logical @tab @code{SLL} @tab @code{r,adr[,x]} @tab 符å·ãå«ã¿@code{(r)}ãå®å¹ã¢ãã¬ã¹ã§æå®ãããããæ°ã ãå·¦ã«ã·ãããããã·ããã®çµæ,空ãããããä½ç½®ã«ã¯@code{0}ãå ¥ãã @tab â @* ãã ãã@code{OF}ã«ã¯ã¬ã¸ã¹ã¿ããæå¾ã«éãåºããããããã®å¤ãè¨å®ãããã +@item è«çå³ã·ãã @* Shift Right Logical @tab @code{SRL} @tab @code{r,adr[,x]} @tab 符å·ãå«ã¿@code{(r)}ãå®å¹ã¢ãã¬ã¹ã§æå®ãããããæ°ã ãå³ã«ã·ãããããã·ããã®çµæã空ãããããä½ç½®ã«ã¯@code{0}ãå ¥ãã @tab â @* ãã ãã@code{OF}ã«ã¯ã¬ã¸ã¹ã¿ããæå¾ã«éãåºããããããã®å¤ãè¨å®ãããã +@end multitable + +@item åå²å½ä»¤ +@multitable @columnfractions .25 .10 .15 .30 .20 +@headitem å½ä»¤ @tab æ¸ãæ¹ @* å½ä»¤ã³ã¼ã @tab æ¸ãæ¹ @* ãªãã©ã³ã @tab å½ä»¤ã®èª¬æ @tab FRã®è¨å® +@item æ£åå² @* Jump on Plus @tab @code{JPL} @tab @code{adr[,x]} @tab @code{FR}ã®å¤ã«ãã£ã¦ãå®å¹ã¢ãã¬ã¹ã«åå²ãããåå²ããªãã¨ãã¯ã次ã®å½ä»¤ã«é²ãã +@table @dfn +@item åå²ããã¨ãã®@code{FR}ã®å¤ +@code{SF:0, ZF:0} +@end table +@tab -- +@item è² åå² @* Jump on MINUS @tab @code{JMI} @tab @code{adr[,x]} @tab @code{FR}ã®å¤ã«ãã£ã¦ãå®å¹ã¢ãã¬ã¹ã«åå²ãããåå²ããªãã¨ãã¯ã次ã®å½ä»¤ã«é²ãã +@table @dfn +@item åå²ããã¨ãã®@code{FR}ã®å¤ +@code{SF:1} +@end table +@tab -- +@item éé¶åå² @* Jump on Non Zero @tab @code{JNZ} @tab @code{adr[,x]} @tab @code{FR}ã®å¤ã«ãã£ã¦ãå®å¹ã¢ãã¬ã¹ã«åå²ãããåå²ããªãã¨ãã¯ã次ã®å½ä»¤ã«é²ãã +@table @dfn +@item åå²ããã¨ãã®@code{FR}ã®å¤ +@code{ZF:0} +@end table +@tab -- +@item é¶åå² @* Jump on ZEro @tab @code{JZE} @tab @code{adr[,x]} @tab @code{FR}ã®å¤ã«ãã£ã¦ãå®å¹ã¢ãã¬ã¹ã«åå²ãããåå²ããªãã¨ãã¯ã次ã®å½ä»¤ã«é²ãã +@table @dfn +@item åå²ããã¨ãã®@code{FR}ã®å¤ +@code{ZF:1} +@end table +@tab -- +@item ãªã¼ãã¼ããã¼åå² @* Jump on OVerflow @tab @code{JOV} @tab @code{adr[,x]} @tab @code{FR}ã®å¤ã«ãã£ã¦ãå®å¹ã¢ãã¬ã¹ã«åå²ãããåå²ããªãã¨ãã¯ã次ã®å½ä»¤ã«é²ãã +@table @dfn +@item åå²ããã¨ãã®@code{FR}ã®å¤ +@code{OF:1} +@end table +@tab -- +@item ç¡æ¡ä»¶åå² @* unconditional Jump @tab @code{JUMP} @tab @code{adr[,x]} @tab ç¡æ¡ä»¶ã«å®å¹ã¢ãã¬ã¹ã«åå²ããã @tab -- +@end multitable + +@item ã¹ã¿ãã¯æä½å½ä»¤ +@multitable @columnfractions .25 .10 .15 .30 .20 +@headitem å½ä»¤ @tab æ¸ãæ¹ @* å½ä»¤ã³ã¼ã @tab æ¸ãæ¹ @* ãªãã©ã³ã @tab å½ä»¤ã®èª¬æ @tab FRã®è¨å® +@item ããã·ã¥ @* PUSH @tab @code{PUSH} @tab @code{adr[,x]} @tab @code{SP â (SP)-L1}, @* @code{(SP)â (å®å¹ã¢ãã¬ã¹)} @tab -- +@item ããã @* POP @tab @code{POP} @tab @code{r} @tab @code{r â ( (SP) )}, @* @code{SP â (SP) +L 1} @tab -- +@end multitable + +@item ã³ã¼ã«ããªã¿ã¼ã³å½ä»¤ +@multitable @columnfractions .25 .10 .15 .30 .20 +@headitem å½ä»¤ @tab æ¸ãæ¹ @* å½ä»¤ã³ã¼ã @tab æ¸ãæ¹ @* ãªãã©ã³ã @tab å½ä»¤ã®èª¬æ @tab FRã®è¨å® +@item ã³ã¼ã« @* CALL subroutine @tab @code{CALL} @tab @code{adr[,x]} @tab @code{SP â (SP)-L 1}, @* @code{(SP) â (PR)}, @* @code{PR â å®å¹ã¢ãã¬ã¹} @tab -- +@item ãªã¿ã¼ã³ @* RETrun form subroutine @tab @code{RET} @tab @tab @code{PR â ( (SP) )}, @* @code{SP â (SP) +L 1} @tab -- +@end multitable + +@item ãã®ä» +@multitable @columnfractions .25 .10 .15 .30 .20 +@headitem å½ä»¤ @tab æ¸ãæ¹ @* å½ä»¤ã³ã¼ã @tab æ¸ãæ¹ @* ãªãã©ã³ã @tab å½ä»¤ã®èª¬æ @tab FRã®è¨å® +@item ã¹ã¼ãã¼ãã¤ã¶ã³ã¼ã« @* SuperVisor CALL @tab @code{SVC} @tab @code{adr[,x]} @tab å®å¹ã¢ãã¬ã¹ã弿°ã¨ãã¦å²åºããè¡ããå®è¡å¾ã®@code{GR}ã¨@code{FR}ã¯ä¸å®ã¨ãªãã @tab -- +@item ãã¼ãªãã¬ã¼ã·ã§ã³ @* No operation @tab @code{NOP} @tab @tab ä½ãããªãã @tab -- +@end multitable +@end enumerate + +@itemize +@item +注 +@table @dfn +@item @code{r}, @code{r1}, @code{r2} +ãããã @code{GR}ã示ããæå®ã§ãã@code{GR}ã¯@code{GR0}ï½@code{GR7} + +@item @code{adr} +ã¢ãã¬ã¹ã示ããæå®ã§ããå¤ã®ç¯å²ã¯@code{0}ï½@code{65535} + +@item @code{x} +ææ¨ã¬ã¸ã¹ã¿ã¨ãã¦ç¨ãã@code{GR}ã示ããæå®ã§ãã@code{GR}ã¯@code{GR1}ï½@code{GR7} + +@item @code{[ ]} +[ ]å ã®æå®ã¯çç¥ã§ãããã¨ã示ãã + +@item @code{( )} +( )å ã®ã¬ã¸ã¹ã¿åã¯ã¢ãã¬ã¹ã«æ ¼ç´ããã¦ããå 容ã示ãã + +@item @code{å®å¹ã¢ãã¬ã¹} +@code{adr}ã¨@code{x}ã®å 容ã¨ã®è«çå ç®å¤åã¯ãã®å¤ã示ãçªå° + +@item @code{â} +æ¼ç®çµæãã左辺ã®ã¬ã¸ã¹ã¿åã¯ã¢ãã¬ã¹ã«æ ¼ç´ãããã¨ã示ãã + +@item @code{+L}, @code{-L} +è«çå ç®ãè«çæ¸ç®ã示ãã + +@item @code{FR}ã®è¨å® +@itemize +@item â: è¨å®ããããã¨ã示ãã +@item ã¼: å®è¡åã®å¤ãä¿æããããã¨ã示ãã +@end itemize +@end table +@end itemize + +@section æåã®ç¬¦å·è¡¨ +@enumerate +@item +JIS X 0201 ã©ãã³æåã»çä»®åç¨8ããã符å·ã§è¦å®ããæåã®ç¬¦å·è¡¨ã使ç¨ããã + +@item + + +@end enumerate +(1) + è¡ å + 0 + +1 +(2) å³ã«ç¬¦å·è¡¨ã®ä¸é¨ã示ãã1 æå㯠8 ããããããªã,ä¸ä½ 4 ããããåã§,ä¸ä½ 4 ããããè¡ã§ç¤ºããä¾ãã°,éé,4,H,Â¥ ã®ãããæ§æã¯,16 é²è¡¨ç¤ºã§,ãããã 20,34,48, +2 + +3 + +4 + +5 +6 +5C ã§ããã16 é²è¡¨ç¤ºã§,ãããæ§æã 21 ~7E(åã³è¡¨ã§ã¯çç¥ãã¦ãã A1 ~ DF)ã«å¯¾å¿ããæåãå³å½¢æåã¨ãããå³å½¢æåã¯,表示(å°å·)è£ ç½®ã§,æåã¨ãã¦è¡¨ç¤º(å°å)ã§ããã +7 + +8 + +9 + 10 + +(3) ãã®è¡¨ã«ãªãæåã¨ãã®ãããæ§æãå¿ è¦ãªå ´åã¯,åé¡ä¸ã§ä¸ããã +11 + +12 +13 +14 +15 +02 03 +éé 0 +! +1 +â +2 +# +3 +$ +4 +% +5 +& +6 +' +7 +( +8 +) +9 +* +: ++ +; +, +< +â += +. +> +/ +? +04 +@ +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +05 +P +Q +R +S +T +U +V +W +X +Y +Z +[ +Â¥ +] +^ +_ +06 +` +a +b +c +d +e +f +g +h +i +j +k +l +m +n +o +07 +p +q +r +s +t +u +v +w +x +y +z +{ +| +} +~ + +@bye + + +ã·ããæ¼ç®å½ä»¤ +ç®è¡å·¦ã·ãã SLA r,adr[,x] + Shift Left Arithmetic + r,adr[,x] + +SLL r,adr[,x] +SRL r,adr[,x] +JPL adr[,x] +JMI adr[,x] +JNZ adr[,x] +JZE adr[,x] +JOV adr[,x] +JUMP adr[,x] +è«çå·¦ã·ãã +Shift Left Logical +è«çå³ã·ãã +Shift Right Logical +(5) +â(r1)+(r2) +â(r)+(å®å¹ã¢ãã¬ã¹) +â(r1)+L(r2) +â(r)+L(å®å¹ã¢ãã¬ã¹) +â(r1)-(r2) +â(r)-(å®å¹ã¢ãã¬ã¹) +â(r1)-L(r2) +â(r)-L(å®å¹ã¢ãã¬ã¹) +â(r1)AND(r2) +â(r)AND(å®å¹ã¢ãã¬ã¹) +â(r1)OR(r2) +â(r)OR(å®å¹ã¢ãã¬ã¹) +â(r1)XOR(r2) +â(r)XOR(å®å¹ã¢ãã¬ã¹) +æ¯è¼æ¼ç®å½ä»¤ +r1,r2 +(4) +r1 +r +r1 +r +r1 +r +r1 +r +r1 +r +r1 +r +r1 +r +åå²å½ä»¤ +æ£åå² +Jump on PLus +è² åå² +Jump on MInus +éé¶åå² +Jump on Non Zero +é¶åå² +Jump on ZEro +ãªã¼ãããã¼åå² +Jump on OVerflow +ç¡æ¡ä»¶åå² +unconditional JUMP +FR ã®å¤ã«ãã£ã¦ãå®å¹ã¢ãã¬ã¹ã«åå²ã +ããåå²ããªãã¨ãã¯ã次ã®å½ä»¤ã«é²ãã +åå²ããã¨ãã® FR ã®å¤ +å½ä»¤ +OF +SF +ZF +0 +0 +JPL +1 +JMI + +JNZ +0 +1 +JZE +JOV +1 +ç¡æ¡ä»¶ã«å®å¹ã¢ãã¬ã¹ã«åå²ããã + +(6) +ã¹ã¿ãã¯æä½å½ä»¤ +ããã·ã¥ +PUSH +ããã +POP +PUSH adr[,x] +POP r +ã³ã¼ã« CALL adr[,x] + CALL subroutine +ãªã¿ã¼ã³ RET + RETurn from subroutine +SVC adr[,x] +NOP +(7) +(8) +SP â(SP)-L 1, - + (SP)â å®å¹ã¢ãã¬ã¹ + r â((SP)) + , + SP â(SP)+L 1 +SP â(SP)-L 1, - + (SP)â(PR) + , + PR â å®å¹ã¢ãã¬ã¹ + PR â((SP)) + , + SP â(SP)+L 1 +ã³ã¼ã«,ãªã¿ã¼ã³å½ä»¤ +ãã®ä» +ã¹ã¼ããã¤ã¶ã³ã¼ã« +SuperVisor Call +ãã¼ãªãã¬ã¼ã·ã§ã³ +No OPeration +(注) r,r1,r2 + +adr + +x +[ +] + +( +) + +å®å¹ã¢ãã¬ã¹ +â + ++L,-L +FR ã®è¨å® +å®å¹ã¢ãã¬ã¹ã弿°ã¨ãã¦å²åºããè¡ +ããå®è¡å¾ã® GR 㨠FR ã¯ä¸å®ã¨ãªãã +- +ä½ãããªãã +ãããã GR ã示ããæå®ã§ãã GR 㯠GR0 ~ GR7 +ã¢ãã¬ã¹ã示ããæå®ã§ããå¤ã®ç¯å²ã¯ 0 ~ 65535 +ææ¨ã¬ã¸ã¹ã¿ã¨ãã¦ç¨ãã GR ã示ããæå®ã§ãã GR 㯠GR1 ~ GR7 +[ +]å ã®æå®ã¯çç¥ã§ãããã¨ã示ãã +( +)å ã®ã¬ã¸ã¹ã¿åã¯ã¢ãã¬ã¹ã«æ ¼ç´ããã¦ããå 容ã示ãã +adr 㨠x ã®å 容ã¨ã®è«çå ç®å¤åã¯ãã®å¤ã示ãçªå° +æ¼ç®çµæãã左辺ã®ã¬ã¸ã¹ã¿åã¯ã¢ãã¬ã¹ã«æ ¼ç´ãããã¨ã示ãã +è«çå ç®ãè«çæ¸ç®ã示ãã +â :è¨å®ããããã¨ã示ãã +- :å®è¡åã®å¤ãä¿æããããã¨ã示ãã + +@section æåã®ç¬¦å·è¡¨ +(1) JIS X 0201 ã©ãã³æåã»çä»®åç¨ 8 ããã符 è¡ å +0 +å·ã§è¦å®ããæåã®ç¬¦å·è¡¨ã使ç¨ããã +1 +(2) å³ã«ç¬¦å·è¡¨ã®ä¸é¨ã示ãã1 æå㯠8 ããã +2 +ãããªããä¸ä½ 4 ããããåã§ãä¸ä½ 4 ããã +3 +ãè¡ã§ç¤ºããä¾ãã°ãééã4ãHãÂ¥ ã®ããã +4 +æ§æã¯ã16 é²è¡¨ç¤ºã§ããããã 20ã34ã48ã +5 +6 +5C ã§ããã16 é²è¡¨ç¤ºã§ããããæ§æã 21 ~ +7 +7E(åã³è¡¨ã§ã¯çç¥ãã¦ãã A1 ~ DF)ã«å¯¾å¿ +8 +ããæåãå³å½¢æåã¨ãããå³å½¢æåã¯ã表示 +9 +ï¼å°å·ï¼è£ ç½®ã§ãæåã¨ãã¦è¡¨ç¤ºï¼å°åï¼ã§ããã 10 +(3) ãã®è¡¨ã«ãªãæåã¨ãã®ãããæ§æãå¿ è¦ãª +11 +å ´åã¯ãåé¡ä¸ã§ä¸ããã +12 +13 +14 +15 +02 03 +éé 0 +! +1 +â +2 +# +3 +$ +4 +% +5 +& +6 +' +7 +( +8 +) +9 +* +: ++ +; +, +< +â += +. +> +/ +? +04 +@ +A +B +C +D +E +F +G +H +I +J +K +L +M +N +O +05 +P +Q +R +S +T +U +V +W +X +Y +Z +[ +Â¥ +] +^ +_ +06 +` +a +b +c +d +e +f +g +h +i +j +k +l +m +n +o +07 +p +q +r +s +t +u +v +w +x +y +z +{ +| +} +~ + +@chapter ã¢ã»ã³ãã©è¨èª CASLIIã®ä»æ§ +@section è¨èªã®ä»æ§ +(1) CASLIIã¯ãCOMETIIã®ããã®ã¢ã»ã³ãã©è¨èªã§ããã +(2) ããã°ã©ã ã¯ãå½ä»¤è¡åã³æ³¨éè¡ãããªãã +(3) 1 å½ä»¤ã¯ 1 å½ä»¤è¡ã§è¨è¿°ããæ¬¡ã®è¡ã¸ç¶ç¶ã§ããªãã +(4) å½ä»¤è¡åã³æ³¨éè¡ã¯ã次ã«ç¤ºãè¨è¿°ã®å½¢å¼ã§ãè¡ã® 1 æåç®ããè¨è¿°ããã +è¡ ã® ç¨® é¡ +è¨ è¿° ã® å½¢ å¼ +ãªãã©ã³ããã [ã©ãã«] +{空ç½} +{å½ä»¤ã³ã¼ã} +{空ç½} +{ãªãã©ã³ã} +[{空ç½} +[ã³ã¡ã³ã] +] +å½ä»¤è¡ +ãªãã©ã³ããªã [ã©ãã«] +{空ç½} +{å½ä»¤ã³ã¼ã} +[{空ç½} +[{;} +[ã³ã¡ã³ã]] +] +注éè¡ +[空ç½] [ã³ã¡ã³ã] +{;} +ï¼æ³¨ï¼ [ +] [ +]å ã®æå®ãçç¥ã§ãããã¨ã示ãã +{ +} { +}å ã®æå®ãå¿ é ã§ãããã¨ã示ãã +ãã®å½ä»¤ã®ï¼å é ã®èªã®ï¼ã¢ãã¬ã¹ãä»ã®å½ä»¤ãããã°ã©ã ããåç §ããããã® +ã©ãã« +ååã§ãããé·ã㯠1 ~ 8 æåã§ãå é ã®æåã¯è±å¤§æåã§ãªããã°ãªããªãã +以éã®æåã¯ãè±å¤§æååã¯æ°åã®ãããã§ãããããªããäºç´èªã§ãã GR0 ~ +GR7 ã¯ã使ç¨ã§ããªãã +ç©ºç½ +1 æå以ä¸ã®ééæåã®åã§ããã +å½ä»¤ã³ã¼ã å½ä»¤ãã¨ã«è¨è¿°ã®å½¢å¼ãå®ç¾©ããã¦ããã +ãªãã©ã³ã å½ä»¤ãã¨ã«è¨è¿°ã®å½¢å¼ãå®ç¾©ããã¦ããã +ã³ã¡ã³ã +è¦ãæ¸ããªã©ã®ä»»æã®æ å ±ã§ãããå¦çç³»ã§è¨±ãä»»æã®æåãæ¸ããã¨ãã§ããã + +@section å½ä»¤ã®ç¨®é¡ +å½ä»¤ã¯ã4 種é¡ã®ã¢ã»ã³ãã©å½ä»¤ï¼START,END,DS,DCï¼ ç¨®é¡ã®ãã¯ãå½ä»¤ï¼IN, +,4 +OUT,RPUSH,RPOPï¼åã³æ©æ¢°èªå½ä»¤ï¼COMETIIã®å½ä»¤ï¼ãããªãããã®ä»æ§ã次ã«ç¤º +ãã +å½ä»¤ã®ç¨®é¡ +ã©ãã« +å½ ä»¤ +ã³ã¼ã +ãªãã©ã³ã +æ© +è½ +ããã°ã©ã ã®å é ãå®ç¾© +ããã°ã©ã ã®å®è¡éå§çªå°ãå®ç¾© +ã©ãã« START [å®è¡éå§çªå°] +ä»ã®ããã°ã©ã ã§åç §ããå ¥å£å +ãå®ç¾© +ã¢ã»ã³ãã©å½ä»¤ +END +ããã°ã©ã ã®çµãããæç¤º + + +[ã©ãã«] DS +èªæ° +é åãç¢ºä¿ +[ã©ãã«] DC +宿°[,宿°]... +宿°ãå®ç¾© +[ã©ãã«] IN +å ¥åé å,å ¥åæåé·é å å ¥åè£ ç½®ããæåãã¼ã¿ãå ¥å +[ã©ãã«] OUT +åºåé å,åºåæåé·é å åºåè£ ç½®ã¸æåãã¼ã¿ãåºå +ãã¯ãå½ä»¤ +[ã©ãã«] RPUSH +GR ã®å 容ãã¹ã¿ãã¯ã«æ ¼ç´ +[ã©ãã«] RPOP +ã¹ã¿ãã¯ã®å 容ã GR ã«æ ¼ç´ +æ©æ¢°èªå½ä»¤ +[ã©ãã«] +ï¼ +ã1.2 å½ä»¤ããåç §ï¼ + +@section ã¢ã»ã³ãã©å½ä»¤ +ã¢ã»ã³ãã©å½ä»¤ã¯ãã¢ã»ã³ãã©ã®å¶å¾¡ãªã©ãè¡ãã +ï¼1ï¼ +START [å®è¡éå§çªå°] +START å½ä»¤ã¯ãããã°ã©ã ã®å é ãå®ç¾©ããã +å®è¡éå§çªå°ã¯ããã®ããã°ã©ã å ã§å®ç¾©ãããã©ãã«ã§æå®ãããæå®ãããå ´å +ã¯ãã®çªå°ãããçç¥ããå ´å㯠START å½ä»¤ã®æ¬¡ã®å½ä»¤ãããå®è¡ãéå§ããã +ã¾ãããã®å½ä»¤ã«ã¤ããããã©ãã«ã¯ãä»ã®ããã°ã©ã ããå ¥å£åã¨ãã¦åç §ã§ããã +(2) +END +END å½ä»¤ã¯ãããã°ã©ã ã®çµãããå®ç¾©ããã +(3) +DS +èªæ° +DS å½ä»¤ã¯ãæå®ããèªæ°ã®é åã確ä¿ããã +èªæ°ã¯ã10 é²å®æ°ï¼â§ 0ï¼ã§æå®ãããèªæ°ã 0 ã¨ããå ´åãé åã¯ç¢ºä¿ããªããã +ã©ãã«ã¯æå¹ã§ããã +(4) +DC +宿°[,宿°]... +DC å½ä»¤ã¯,宿°ã§æå®ãããã¼ã¿ãï¼é£ç¶ããï¼èªã«æ ¼ç´ããã +宿°ã«ã¯ã10 é²å®æ°ã16 é²å®æ°ãæå宿°ãã¢ãã¬ã¹å®æ°ã® 4 種é¡ãããã +宿°ã®ç¨®é¡ +æ¸ãæ¹ +å½ ä»¤ 㮠説 æ +n ã§æå®ãã 10 鲿°å¤ãã èªã® 2 鲿°ãã¼ã¿ã¨ãã¦æ ¼ç´ããããã ããn +1 +10 é²å®æ° +n +ã-32768 ~ 32767 ã®ç¯å²ã«ãªãã¨ãã¯ããã®ä¸ä½ 16 ããããæ ¼ç´ããã +h 㯠4 ããã® 16 鲿°ï¼16 鲿°å㯠0 ~ 9ãA ~ Fï¼ã¨ãããh ã§æå®ãã +16 é²å®æ° +#h +16 鲿°å¤ã 1 èªã® 2 鲿°ãã¼ã¿ã¨ãã¦æ ¼ç´ããï¼0000 ⦠h ⦠FFFFï¼ +ã +æååã®æåæ°ï¼> 0ï¼åã®é£ç¶ããé åã確ä¿ããæåã®æåã¯ç¬¬ 1 èªã® +ä¸ä½ 8 ãããã«ã2 çªç®ã®æåã¯ç¬¬ 2 èªã®ä¸ä½ 8 ãããã«ã...ã¨é 次æå +æå宿° +'æåå' ãã¼ã¿ã¨ãã¦æ ¼ç´ãããåèªã®ä¸ä½ 8 ãããã«ã¯ 0 ã®ããããå ¥ãã +æååã«ã¯ãééåã³ä»»æã®å³å½¢æåãæ¸ããã¨ãã§ããããã ããã¢ã +ã¹ãããã£ï¼'ï¼ã¯ 2 åç¶ãã¦æ¸ãã +ã¢ãã¬ã¹å®æ° ã©ãã« ã©ãã«ã«å¯¾å¿ããã¢ãã¬ã¹ã 1 èªã® 2 鲿°ãã¼ã¿ã¨ãã¦æ ¼ç´ããã + +@section ãã¯ãå½ä»¤ +ãã¯ãå½ä»¤ã¯ããããããå®ç¾©ãããå½ä»¤ç¾¤ã¨ãªãã©ã³ãã®æ å ±ã«ãã£ã¦ãç®çã®æ© +è½ãæããå½ä»¤ç¾¤ãçæããï¼èªæ°ã¯ä¸å®ï¼ +ã +(1) +IN +å ¥åé åãå ¥åæåé·é å +IN å½ä»¤ã¯ããããããå²ãå½ã¦ãå ¥åè£ ç½®ããã1 ã¬ã³ã¼ãã®æåãã¼ã¿ãèªã¿è¾¼ãã +å ¥åé åã¯ã256 èªé·ã®ä½æ¥åã®ã©ãã«ã§ããããã®é åã®å é ããã1 æåã 1 èªã« +対å¿ããã¦é æ¬¡å ¥åããããã¬ã³ã¼ãã®åºåã符å·ï¼ãã¼ãã¼ãå ¥åã®å¾©å¸°ç¬¦å·ãªã©ï¼ +ã¯ãæ ¼ç´ããªããæ ¼ç´ã®å½¢å¼ã¯ãDC å½ä»¤ã®æå宿°ã¨åãã§ãããå ¥åãã¼ã¿ã 256 æ +åã«æºããªãå ´åãå ¥åé åã®æ®ãã®é¨åã¯å®è¡åã®ãã¼ã¿ãä¿æãããå ¥åãã¼ã¿ã +256 æåãè¶ ããå ´åã以éã®æåã¯ç¡è¦ãããã +å ¥åæåé·é åã¯ã1 èªé·ã®é åã®ã©ãã«ã§ãããå ¥åãããæåã®é·ãï¼â§ 0ï¼ã 2 +鲿°ã§æ ¼ç´ãããããã¡ã¤ã«ã®çµããï¼end of fileï¼ãæ¤åºããå ´åã¯ã-1 ãæ ¼ç´ãã +ãã +IN å½ä»¤ãå®è¡ããã¨ãGR ã®å 容ã¯ä¿åãããããFR ã®å 容ã¯ä¸å®ã¨ãªãã +(2) +OUT +åºåé åãåºåæåé·é å +OUT å½ä»¤ã¯ããããããå²ãå½ã¦ãåºåè£ ç½®ã«ãæåãã¼ã¿ãã1 ã¬ã³ã¼ãã¨ãã¦æ¸ã +åºãã +åºåé åã¯ãåºåãããã¨ãããã¼ã¿ã 1 æå 1 èªã§æ ¼ç´ããã¦ããé åã®ã©ãã«ã§ +ãããæ ¼ç´ã®å½¢å¼ã¯ãDC å½ä»¤ã®æå宿°ã¨åãã§ããããä¸ä½ 8 ãããã¯ãOS ãç¡è¦ +ããã®ã§ 0 ã§ãªãã¦ãããã +åºåæåé·é åã¯ã1 èªé·ã®é åã®ã©ãã«ã§ãããåºåãããã¨ããæåã®é·ã +ï¼â§ 0ï¼ +ã 2 鲿°ã§æ ¼ç´ãã¦ããã +OUT å½ä»¤ãå®è¡ããã¨ãGR ã®å 容ã¯ä¿åãããããFR ã®å 容ã¯ä¸å®ã¨ãªãã +(3) +RPUSH +RPUSH å½ä»¤ã¯ãGR ã®å 容ããGR1,GR2,...,GR7 ã®é åºã§ã¹ã¿ãã¯ã«æ ¼ç´ããã +(4) +RPOP +RPOP å½ä»¤ã¯ãã¹ã¿ãã¯ã®å 容ãé æ¬¡åãåºããGR7,GR6,...,GR1 ã®é åºã§ GR ã« +æ ¼ç´ããã +@section æ©æ¢°èªå½ä»¤ +æ©æ¢°èªå½ä»¤ã®ãªãã©ã³ãã¯ã次ã®å½¢å¼ã§è¨è¿°ããã +r, r1, r2 +x +adr +GR ã¯ãè¨å· GR0 ~ GR7 ã§æå®ããã +ææ¨ã¬ã¸ã¹ã¿ã¨ãã¦ç¨ãã GR ã¯ãè¨å· GR1 ~ GR7 ã§æå®ããã +ã¢ãã¬ã¹ã¯ã10 é²å®æ°ã16 é²å®æ°ãã¢ãã¬ã¹å®æ°åã¯ãªãã©ã«ã§æå®ããã +ãªãã©ã«ã¯ãä¸ã¤ã® 10 é²å®æ°ã16 é²å®æ°åã¯æå宿°ã®åã«çå·ï¼=ï¼ãä»ã㦠+è¨è¿°ãããCASLIIã¯ãçå·ã®å¾ã®å®æ°ããªãã©ã³ãã¨ãã DC å½ä»¤ãçæããã +ã®ã¢ãã¬ã¹ã adr ã®å¤ã¨ããã +@section ãã®ä» +(1) ã¢ã»ã³ãã©ã«ãã£ã¦çæãããå½ä»¤èªãé åã®ç¸å¯¾ä½ç½®ã¯ãã¢ã»ã³ãã©è¨èªã§ã®è¨è¿° +é åºã¨ããããã ãããªãã©ã«ããçæããã DC å½ä»¤ã¯ãEND å½ä»¤ã®ç´åã«ã¾ã¨ã㦠+é ç½®ãããã +(2) çæãããå½ä»¤èªãé åã¯ãä¸»è¨æ¶ä¸ã§é£ç¶ããé åãå ããã + +@chapter ããã°ã©ã å®è¡ã®æå¼ +@section OS +ããã°ã©ã ã®å®è¡ã«é¢ãã¦ã次ã®å決ããããã +(1) ã¢ã»ã³ãã©ã¯ãæªå®ç¾©ã©ãã«ï¼ãªãã©ã³ãæ¬ã«è¨è¿°ãããã©ãã«ã®ãã¡ããã®ããã° +ã©ã å ã§å®ç¾©ããã¦ããªãã©ãã«ï¼ããä»ã®ããã°ã©ã ã®å ¥å£åï¼START å½ä»¤ã®ã©ã +ã«ï¼ã¨è§£éããããã®å ´åãã¢ã»ã³ãã©ã¯ã¢ãã¬ã¹ã®æ±ºå®ãä¿çãããã®æ±ºå®ã OS ã« +ä»»ãããOS ã¯ãå®è¡ã«å ç«ã£ã¦ä»ã®ããã°ã©ã ã®å ¥å£åã¨ã®é£ä¿å¦çãè¡ãã¢ãã¬ã¹ +ãæ±ºå®ããï¼ããã°ã©ã ã®é£ä¿ï¼ +ã +(2) ããã°ã©ã ã¯ãOS ã«ãã£ã¦èµ·åããããããã°ã©ã ããã¼ããããä¸»è¨æ¶ã®é å㯠+ä¸å®ã¨ããããããã°ã©ã ä¸ã®ã©ãã«ã«å¯¾å¿ããã¢ãã¬ã¹å¤ã¯ãOS ã«ãã£ã¦å®ã¢ã㬠+ã¹ã«è£æ£ããããã®ã¨ããã +(3) ããã°ã©ã ã®èµ·åæã«ãOS ã¯ããã°ã©ã ç¨ã«ååãªå®¹éã®ã¹ã¿ãã¯é åã確ä¿ãã +ãã®æå¾ã®ã¢ãã¬ã¹ã« 1 ãå ç®ããå¤ã SP ã«è¨å®ããã +(4) OS ã¯ãCALL å½ä»¤ã§ããã°ã©ã ã«å¶å¾¡ã渡ããããã°ã©ã ãçµäºã OS ã«å¶å¾¡ãæ»ã +ã¨ãã¯ãRET å½ä»¤ã使ç¨ããã +(5) IN å½ä»¤ã«å¯¾å¿ããå ¥åè£ ç½®ãOUT å½ä»¤ã«å¯¾å¿ããåºåè£ ç½®ã®å²å½ã¦ã¯ãããã°ã©ã ã® +å®è¡ã«å ç«ã£ã¦å©ç¨è ãè¡ãã +(6) OS ã¯ãå ¥åºåè£ ç½®ãåªä½ã«ããå ¥åºåæç¶ã®éããå¸åããã·ã¹ãã ã§ã®æ¨æºã®å½¢ +å¼åã³æç¶ï¼ç°å¸¸å¦çãå«ãï¼ã§å ¥åºåãè¡ãããããã£ã¦ãINãOUT å½ä»¤ã§ã¯ãå ¥åº +åè£ ç½®ã®éããæèããå¿ è¦ã¯ãªãã +@section æªå®ç¾©äºé +ããã°ã©ã ã®å®è¡çã«é¢ãããã®ä»æ§ã§å®ç¾©ããªãäºé ã¯ãå¦çç³»ã«ãããã®ã¨ããã + +@unnumberedåèè³æ + +åèè³æã¯ãCOMETIIã®çè§£ãå©ããããå㯠COMETIIã®å¦çç³»ä½æè ã«å¯¾ãã +便å®ã®ããã®è³æã§ããããããã£ã¦ãCOMETIIãCASLIIã®ä»æ§ã«å½±é¿ãä¸ãããã® +ã§ã¯ãªãã + +@section å½ä»¤èªã®æ§æ +å½ä»¤èªã®æ§æã¯å®ç¾©ããªãããæ¬¡ã®ãããªæ§æãæ³å®ãããããã§ãOP ã®æ°å¤ã¯ 16 +é²è¡¨ç¤ºã§ç¤ºãã +15 +11 +7 +3 +第1èª +0 15 +OP +r/r1 x/r2 +主OPå¯OP +0 +0 +- +- +1 +0 +1 +2 +4 +2 +0 +1 +2 +3 +4 +5 +6 +7 +3 +0 +1 +2 +4 +5 +6 +4 +0 +1 +4 +5 +5 +0 +1 +2 +3 +6 +1 +- +2 +- +3 +- +4 +- +5 +- +6 +- +7 +0 +- +1 +- +8 +0 +- +1 +- +- +9 +~ +E +F +0 +- +0 +第2èª +adr +- +- +- +- +- +- +- +- +- +- +- +- +- +ãããçªå· +å½ä»¤èªã¨ã¢ã»ã³ãã©ã¨ã®å¯¾å¿ +å½ä»¤ +èªé· +1 +2 +2 +2 +1 +2 +2 +2 +2 +1 +1 +1 +1 +2 +2 +2 +1 +1 +1 +2 +2 +1 +1 +2 +2 +2 +2 +2 +2 +2 +2 +2 +2 +2 +1 +2 +1 +æ©æ¢°èªå½ä»¤ +NOP +LD +ST +LAD +LD +ADDA +SUBA +ADDL +SUBL +ADDA +SUBA +ADDL +SUBL +AND +OR +XOR +AND +OR +XOR +CPA +CPL +CPA +CPL +SLA +SRA +SLL +SRL +JMI +JNZ +JZE +JUMP +JPL +JOV +PUSH +POP +CALL +RET + +r,adr,x +r,adr,x +r,adr,x +r1,r2 +r,adr,x +r,adr,x +r,adr,x +r,adr,x +r1,r2 +r1,r2 +r1,r2 +r1,r2 +r,adr,x +r,adr,x +r,adr,x +r1,r2 +r1,r2 +r1,r2 +r,adr,x +r,adr,x +r1,r2 +r1,r2 +r,adr,x +r,adr,x +r,adr,x +r,adr,x +adr,x +adr,x +adr,x +adr,x +adr,x +adr,x +adr,x +r +adr,x +æå³ +no operation +load +store +load address +load +add arithmetic +subtract arithmetic +add logical +subtract logical +add arithmetic +subtract arithmetic +add logical +subtract logical +and +or +exclusive or +and +or +exclusive or +compare arithmetic +compare logical +compare arithmetic +compare logical +shift left arithmetic +shift right arithmetic +shift left logical +shift right logical +jump on minus +jump on non zero +jump on zero +unconditional jump +jump on plus +jump on overflow +push +pop +call subroutine +return from subroutine +ãã®ä»ã®å½ä»¤ +2 +SVC +adr,x +supervisor call + +@section ãã¯ãå½ä»¤ +ãã¯ãå½ä»¤ãçæããå½ä»¤ç¾¤ã¯å®ç¾©ããªãï¼èªæ°ä¸å®ï¼ã,次ã®ä¾ã®ãããªå½ä»¤ç¾¤ã +çæãããã¨ãæ³å®ããã +ãä¾ãIN å½ä»¤ +LABEL IN +IBUF,LEN + +ãã¯ãçæ + + +LABEL + + + + + + +PUSH +PUSH +LAD +LAD +SVC +POP +POP +0,GR1 +0,GR2 +GR1,IBUF +GR2,LEN +1 +GR2 +GR1 +3. +ã·ããæ¼ç®å½ä»¤ã«ããããããã®åã +ã·ããæ¼ç®å½ä»¤ã«ããã¦,ä¾ãã°,1 ãããã®ã·ãããããã¨ãã®åãåã³ OF ã®å¤å +ã¯,次ã®ã¨ããã§ããã +(1) ç®è¡å·¦ã·ããã§ã¯,ãããçªå· 14 ã®å¤ãè¨å®ãããã +OF +15 +14 +13 +12 +11 +10 +9 +8 +7 +6 +5 +4 +3 +2 +1 +0 +0 +(2) ç®è¡å³ã·ããã§ã¯,ãããçªå· 0 ã®å¤ãè¨å®ãããã +15 +14 +13 +12 +11 +10 +9 +8 +7 +6 +5 +4 +3 +2 +1 0 +1 +OF +0 +(3) è«çå·¦ã·ããã§ã¯,ãããçªå· 15 ã®å¤ãè¨å®ãããã +OF +15 +14 +13 +12 +11 +10 +9 +8 +7 +6 +5 +4 +3 +2 +0 +(4) è«çå³ã·ããã§ã¯,ãããçªå· 0 ã®å¤ãè¨å®ãããã +15 +14 +13 +12 +11 +10 +9 +8 +7 +6 +5 +4 +3 +2 +1 +0 +OF +0 +4. +ããã°ã©ã ã®ä¾ +COUNT1 +; +; +; + + + + + +MORE + + + +RETURN + + + + +START +å ¥å +å¦ç +åºå +PUSH +PUSH +SUBA +AND +JZE +LAD +LAD +AND +JNZ +LD +POP +POP +RET +END + +; +GR1:æ¤ç´¢ããèª +GR1 ä¸ã®'1'ã®ãããã®åæ°ãæ±ãã +GR0:GR1 ä¸ã®'1'ã®ãããã®åæ° +0,GR1 +; +0,GR2 +; +GR2,GR2 +; Count = 0 +GR1,GR1 +; å ¨é¨ã®ãããã'0'? +RETURN +; å ¨é¨ã®ãããã'0'ãªãçµäº +GR2,1,GR2 +; Count = Count + 1 +GR0,â1,GR1 +; æä¸ä½ã®'1'ã®ããã 1 åã +GR1,GR0 +; '0'ã«å¤ãã +MORE +; '1'ã®ããããæ®ã£ã¦ããã°ç¹°è¿ã +GR0,GR2 +; GR0 = Count +GR2 +; +GR1 +; + +; å¼åºãããã°ã©ã ã¸æ»ã + +; + diff --git a/doc/style.css b/doc/style.css index d117590..1f7d790 100644 --- a/doc/style.css +++ b/doc/style.css @@ -120,4 +120,8 @@ pre.example strong { dt { font-weight: bold; +} + +dfn { + font-style: normal; } \ No newline at end of file diff --git a/doc/yacasl2.info b/doc/yacasl2.info new file mode 100644 index 0000000..264952b --- /dev/null +++ b/doc/yacasl2.info @@ -0,0 +1,1182 @@ +This is yacasl2.info, produced by makeinfo version 4.13 from +manual.texi. + +Copyright (C) 2010-2012 j8takagi + +INFO-DIR-SECTION Programming +START-INFO-DIR-ENTRY +* YACASL2: (yacasl2). CASL II å¦çã·ã¹ãã +* casl2: (yacasl2)casl2 invocation. casl2ã®å¼ã³åºã +* comet2: (yacasl2)comet2 invocation. comet2ã®å¼ã³åºã +* dumpword: (yacasl2)dumpword invocation. dumpwordã®å¼ã³åºã +END-INFO-DIR-ENTRY + + +File: yacasl2.info, Node: Top, Next: Overview, Prev: (dir), Up: (dir) + +* Menu: + +* Overview:: YACASL2ã®æ¦è¦ +* Sample usage:: YACASL2ã®ä½¿ç¨ä¾ +* casl2 invocation:: casl2ã®å¼ã³åºã +* comet2 invocation:: comet2ã®å¼ã³åºã +* dumpword invocation:: dumpwordã®å¼ã³åºã +* CASL2LIB Manual:: CASL2LIBããã¥ã¢ã« + + +File: yacasl2.info, Node: Overview, Next: Sample usage, Prev: Top, Up: Top + +1 YACASL2ã®æ¦è¦ +****************** + + YACASL2ã¯ãUNIXãLinuxã®ã³ãã³ãã©ã¤ã³ã¤ã³ã¿ã¼ãã§ã¤ã¹ã§ +åä½ãããªã¼ãã³ã½ã¼ã¹ã®CASL IIå¦çã·ã¹ãã ã§ãã CASL +IIã¯æ å ±å¦ç試é¨ã§ç¨ããããã¢ã»ã³ãã©è¨èªã§ã +次ã®è³æã«ãã仿§ãå ¬éããã¦ãã¾ãã + + 試é¨ã§ä½¿ç¨ããæ å ±å¦çç¨èªã»ããã°ã©ã è¨èªãªã© Ver + 2.2ï¼å¹³æ24å¹´5æ22æ¥ï¼ + (http://www.jitec.jp/1_13download/shiken_yougo_ver2_2.pdf)ï¼»PDFãã¡ã¤ã«ï¼½ + å¥ç´ 1 ã¢ã»ã³ãã©è¨èªã®ä»æ§ + + YACASL2ã¯ãCASL IIã¢ã»ã³ãã©è¨èªã§è¨è¿°ããããã¡ã¤ã«ãã¢ã»ã³ãã«ãã +ä»®æ³ãã·ã³COMET IIä¸ã§å®è¡ãã¾ãã +ã¢ã»ã³ãã«ã¨å®è¡ã¯ãé£ç¶ã§è¡ããã¨ãã§ãã¾ããã +ã¢ã»ã³ãã«çµæããã¡ã¤ã«ã«ä¿åãã¦ããããå®è¡ãããã¨ãã§ãã¾ãã +YACASL2ã®åä½ã¯CASL IIã®ä»æ§ã«æºæ ãã¦ãããããæ å ±å¦ç試é¨ã®åé¡ã +ã¯ããå種åèæ¸ããµã¤ãã«è¨è¼ãããCASL IIã®ããã°ã©ã ã +ãã®ã¾ã¾ã¢ã»ã³ãã«ãã¦å®è¡ã§ãã¾ãã ã¾ããæ¬ããã±ã¼ã¸ä¸ã«CASL +IIã®ãµã³ãã«ããã°ã©ã ã夿°åé²ããã¦ãã¾ãã + + YACASL2ã¯ãããµã¤ãã®å¦çç³»ãã¨ãã¦åä½ãã¾ãã ã»ãã®å¤ãã®CASL +IIã¨ãã¥ã¬ã¼ã¿ã¨éãããããã¬ã¨ãã¦åä½ãããã +ã³ã³ãã¥ã¼ã¿å é¨ã®æ¨¡å¼å³ã表示ããããããã¨ã¯ããã¾ããã +ãã®ããããYACASL2ã¯ã次ã®ãããªåä½å 容ããã¹ã¦ããã¹ãã§åºåãã¾ãã + + * ã©ãã«ã¨ã¢ãã¬ã¹ã®å¯¾å¿ + + * ã¢ã»ã³ãã«çµæ + + * å®è¡æã®ã¬ã¸ã¹ã¿ã®å 容 + + * å®è¡æã®ã¡ã¢ãªã®å 容 + + åºåãããåä½å 容ã¯ãGNU/Linuxã®ãã¾ãã¾ãªãã¼ã«ã ãã¨ãã°ã`cat' +`less' `grep' `wc'ãªã©ã使ã£ã¦è§£æã§ãã¾ãã + + YACASL2ã®æä½ã¯ã端æ«ä¸ã®ã³ãã³ãã©ã¤ã³ã¤ã³ã¿ã¼ãã§ã¤ã¹ã§è¡ãã¾ãã + + +File: yacasl2.info, Node: Sample usage, Next: casl2 invocation, Prev: Overview, Up: Top + +2 YACASL2ã®ä½¿ç¨ä¾ +********************* + + YACASL2 ã¯ãããã¹ããã¡ã¤ã«ã«è¨è¿°ãããCASLããã°ã©ã ãå¦çãã¾ãã +以ä¸ã®ä¾ã§ç¨ããããCASLããã°ã©ã ã®ãã¡ã¤ã«ã¯ã +ããã¹ãã¨ãã£ã¿ãªã©ã§ä½æããããã¤ã³ã¹ãã¼ã«ãããã£ã¬ã¯ããªã® +ä¸ã«ãã`as'ãã£ã¬ã¯ããªããã³ãã¼ãã¦ãã ããã + +* Menu: + +* Simple output:: å®è¡çµæã®åºåã ãã表示 +* Assemble result:: ã¢ã»ã³ãã«çµæã®ç¢ºèª +* Register and memory:: å®è¡æã®ã¬ã¸ã¹ã¿ã¨ã¡ã¢ãªã表示 +* Only assemble:: ã¢ã»ã³ãã«ã¨å®è¡ãå¥ã«è¡ã +* Analyze word:: 1èªã®è§£æ +* Use CASL2LIB:: CASL2ã©ã¤ãã©ãªã®ä½¿ç¨ + + +File: yacasl2.info, Node: Simple output, Next: Assemble result, Prev: Sample usage, Up: Sample usage + +2.1 å®è¡çµæã®åºåã ãã表示 +======================================== + + ã¤ã³ã¹ãã¼ã«æã«ã³ãã³ãå®è¡ã®ç¢ºèªã«ä½¿ã£ã`hello.casl'ã¯ã次ã®ãããªå 容ã§ãã +CASL IIã®ãã¯ãå½ä»¤OUTã¯ãæååãåºåãã¾ãã + + $ cat hello.casl + MAIN START + OUT OBUF,LEN + RET + OBUF DC 'Hello, World!' + LEN DC 13 + END + + 次ã®ã³ãã³ããå®è¡ããã¨ãCASL II ã®ã¢ã»ã³ãã«ã¨ä»®æ³ãã·ã³ COMET II +ä¸ã§ã®å®è¡ãé£ç¶ã§è¡ãããæååãåºåããã¾ãã + + $ casl2 hello.casl + Hello, World! + + `addl.casl'ã¯ã3ã¨1ã®åãæ±ãã¾ãã + + $ cat addl.casl + ;;; ADDL r,adr + MAIN START + LD GR1,A + ADDL GR1,B + RET + A DC 3 + B DC 1 + END + + ãã®ããã°ã©ã ã«ã¯åºåå½ä»¤ããªãããããªãã·ã§ã³ãªãã§å®è¡ããå ´åã«ã¯çµæãåºåããã¾ããã + + $ casl2 addl.casl + $ + + å®è¡å 容ã確èªããã«ã¯ãå¾è¿°ã®ããã«CPU +å ã«ããã¬ã¸ã¹ã¿ãã¡ã¢ãªã®å 容ã表示ããããçµæãåºåããããã®å¦çã追å ããå¿ è¦ãããã¾ãã + + +File: yacasl2.info, Node: Assemble result, Next: Register and memory, Prev: Simple output, Up: Sample usage + +2.2 ã¢ã»ã³ãã«çµæã®ç¢ºèª +================================== + + casl2ã®å¦çéä¸ã§è¡ãããã¢ã»ã³ãã«ã®çµæã表示ããã«ã¯ããªãã·ã§ã³`-a'ãæå®ãã¾ãã +ã¾ããã©ãã«ã¨ã¢ãã¬ã¹ã®å¯¾å¿è¡¨ã表示ããã«ã¯ããªãã·ã§ã³`-l'ãæå®ãã¾ãã + + 次ã®ã³ãã³ãã§ã¯`hello.casl'ã®ãã©ãã«ã¨ã¢ãã¬ã¹ã®å¯¾å¿è¡¨ã¨ãã¢ã»ã³ãã«çµæã¨ãå®è¡çµæã表示ããã¾ãã +OUTã¯ã¢ã»ã³ãã©å½ä»¤ã§è¤æ°ã®æ©æ¢°èªå½ä»¤ã§æ§æããã¦ãããããå½ä»¤è¡1è¡ã«å¯¾ãã¦ãè¤æ°è¡ã®ã³ã¼ããçæããã¾ãã + + $ casl2 -a -l hello.casl + + Assemble hello.casl (0) + + Label:::: + MAIN.LEN ---> #0020 + MAIN ---> #0000 + MAIN.OBUF ---> #0013 + + Assemble hello.casl (1) + hello.casl: 1:MAIN START + hello.casl: 2: OUT OBUF,LEN + #0000 #7001 + #0001 #0000 + #0002 #7002 + #0003 #0000 + #0004 #1210 + #0005 #0013 + #0006 #1220 + #0007 #0020 + #0008 #F000 + #0009 #0002 + #000A #1210 + #000B #0021 + #0021 #000A + #000C #1220 + #000D #0022 + #0022 #0001 + #000E #F000 + #000F #0002 + #0010 #7120 + #0011 #7110 + hello.casl: 3: RET + #0012 #8100 + hello.casl: 4:OBUF DC 'Hello, World!' + #0013 #0048 + #0014 #0065 + #0015 #006C + #0016 #006C + #0017 #006F + #0018 #002C + #0019 #0020 + #001A #0057 + #001B #006F + #001C #0072 + #001D #006C + #001E #0064 + #001F #0021 + hello.casl: 5:LEN DC 13 + #0020 #000D + hello.casl: 6: END + Hello, World! + + `addl.casl'ã®ãã©ãã«ã¨ã¢ãã¬ã¹ã®å¯¾å¿è¡¨ã¨ãã¢ã»ã³ãã«çµæã¯ã次ã®ããã«ãªãã¾ãã + + $ casl2 -a -l addl.casl + + Assemble addl.casl (0) + + Label:::: + MAIN.A ---> #0005 + MAIN.B ---> #0006 + MAIN ---> #0000 + + Assemble addl.casl (1) + addl.casl: 1:;;; ADDL r,adr + addl.casl: 2:MAIN START + addl.casl: 3: LD GR1,A + #0000 #1010 + #0001 #0005 + addl.casl: 4: ADDL GR1,B + #0002 #2210 + #0003 #0006 + addl.casl: 5: RET + #0004 #8100 + addl.casl: 6:A DC 3 + #0005 #0003 + addl.casl: 7:B DC 1 + #0006 #0001 + addl.casl: 8: END + + ãªãããªãã·ã§ã³`-A'ãæå®ããã¨ãã¢ã»ã³ãã«çµæã表示ãããæç¹ã§å¦çãçµäºãã¾ãã +ä»®æ³ãã·ã³COMET II ã§ã®å®è¡ã¯è¡ããã¾ããã + + +File: yacasl2.info, Node: Register and memory, Next: Only assemble, Prev: Assemble result, Up: Sample usage + +2.3 å®è¡æã®ã¬ã¸ã¹ã¿ã¨ã¡ã¢ãªã表示 +================================================= + + YACASL2ã§ã¯å®è¡ä¸ã®CPUã®ã¬ã¸ã¹ã¿ã¨ã¡ã¢ãªã®å 容ãããããã`-t'ã¨`-d'ãæå®ãããã¨ã§è¡¨ç¤ºã§ãã¾ãã + + ã¾ãã`-M'ã§ãä»®æ³ãã·ã³COMET II ã®ã¡ã¢ãªå®¹éãèª(16 +ããã)åä½ã§æå®ã§ãã¾ãã +å°ããããã°ã©ã ãå®è¡ããã¨ãã¯ãã¡ã¢ãªå®¹éãå°ããããã°çµæãè¦ããããªãã¾ãã + +* Menu: + +* Register specify:: ç¹å®ã®ã¬ã¸ã¹ã¿ã表示 +* End value:: +* Step count:: ããã°ã©ã ã®ã¹ãããæ°ã表示 + + `addl.casl'ã«å¿ è¦ãªã¡ã¢ãªå®¹éã¯8èªã®ãããæ¬¡ã®ããã«CPUã®ã¬ã¸ã¹ã¿ã¨ã¡ã¢ãªã®å 容ã表示ã§ãã¾ãã + + $ casl2 -t -d -M8 addl.casl | less + + Assemble addl.casl (0) + + Assemble addl.casl (1) + + Executing machine codes + #0000: Register:::: + #0000: GR0: 0 = #0000 = 0000000000000000 + #0000: GR1: 0 = #0000 = 0000000000000000 + #0000: GR2: 0 = #0000 = 0000000000000000 + #0000: GR3: 0 = #0000 = 0000000000000000 + #0000: GR4: 0 = #0000 = 0000000000000000 + #0000: GR5: 0 = #0000 = 0000000000000000 + #0000: GR6: 0 = #0000 = 0000000000000000 + #0000: GR7: 0 = #0000 = 0000000000000000 + #0000: SP: 8 = #0008 = 0000000000001000 + #0000: PR: 0 = #0000 = 0000000000000000 + #0000: FR (OF SF ZF): 000 + #0000: Memory:::: + #0000: adr : 0000 0001 0002 0003 0004 0005 0006 0007 + #0000: 0000: 1010 0005 2210 0006 8100 0003 0001 0000 + #0002: Register:::: + #0002: GR0: 0 = #0000 = 0000000000000000 + #0002: GR1: 3 = #0003 = 0000000000000011 + #0002: GR2: 0 = #0000 = 0000000000000000 + #0002: GR3: 0 = #0000 = 0000000000000000 + #0002: GR4: 0 = #0000 = 0000000000000000 + #0002: GR5: 0 = #0000 = 0000000000000000 + #0002: GR6: 0 = #0000 = 0000000000000000 + #0002: GR7: 0 = #0000 = 0000000000000000 + #0002: SP: 8 = #0008 = 0000000000001000 + #0002: PR: 2 = #0002 = 0000000000000010 + #0002: FR (OF SF ZF): 000 + #0002: Memory:::: + #0002: adr : 0000 0001 0002 0003 0004 0005 0006 0007 + #0002: 0000: 1010 0005 2210 0006 8100 0003 0001 0000 + #0004: Register:::: + #0004: GR0: 0 = #0000 = 0000000000000000 + #0004: GR1: 4 = #0004 = 0000000000000100 + #0004: GR2: 0 = #0000 = 0000000000000000 + #0004: GR3: 0 = #0000 = 0000000000000000 + #0004: GR4: 0 = #0000 = 0000000000000000 + #0004: GR5: 0 = #0000 = 0000000000000000 + #0004: GR6: 0 = #0000 = 0000000000000000 + #0004: GR7: 0 = #0000 = 0000000000000000 + #0004: SP: 8 = #0008 = 0000000000001000 + #0004: PR: 4 = #0004 = 0000000000000100 + #0004: FR (OF SF ZF): 000 + #0004: Memory:::: + #0004: adr : 0000 0001 0002 0003 0004 0005 0006 0007 + #0004: 0000: 1010 0005 2210 0006 8100 0003 0001 0000 + + +File: yacasl2.info, Node: Register specify, Next: End value, Prev: Register and memory, Up: Register and memory + +2.3.1 ç¹å®ã®ã¬ã¸ã¹ã¿ã表示 +------------------------------------ + + `addl.casl'ã®ã¬ã¸ã¹ã¿ãã¡ã¢ãªã®ä¸ã§ãå®è¡ä¸ã«å¤ãå¤åãã¦ããã®ã¯GR1ã ãã§ãã +ããããå ´åã¯ã`grep'ã使ã£ã¦è¡¨ç¤ºãããå 容ãçµãè¾¼ããã¨ã§åä½ãæ¤è¨¼ãããããªãã¾ãã + + $ casl2 -t addl.casl | grep 'GR1:' + #0000: GR1: 0 = #0000 = 0000000000000000 + #0002: GR1: 3 = #0003 = 0000000000000011 + #0004: GR1: 4 = #0004 = 0000000000000100 + + ãã®å 容ããå ã«åºåããã¢ã»ã³ãã«çµæã¨å¼ãæ¯ã¹ã¦ãã ããã +次ã®è¡¨ã®ããã«ãPRã¨GR1ãå½ä»¤è¡ã対å¿ãã¦ãããã¨ããããã¾ãã + +PR GR1 å½ä»¤è¡ +#0000 #0000 +#0002 #0003 `LD GR1,A' +#0004 #0004 `ADDL GR1,B' + + +File: yacasl2.info, Node: End value, Next: Step count, Prev: Register specify, Up: Register and memory + +2.3.2 ããã°ã©ã çµäºæã®å¤ã表示 +--------------------------------------------- + + `grep'ã¨`tail'ãçµã¿åãããã°ãããã°ã©ã çµäºæã®å¤ã表示ã§ãã¾ãã + + `addl.casl'ã§ããã°ã©ã çµäºæã®å¤ã確èªããã«ã¯ã次ã®ããã«ãã¾ãã + + $ casl2 -t addl.casl | grep 'GR1:' | tail -1 + #0004: GR1: 4 = #0004 = 0000000000000100 + + `sum_10.casl'ã¯ã1ãã10ã¾ã§ã®æ´æ°ã®åãæ±ãã¾ãã + + $ cat sum_10.casl + ;;; sum_10.casl + ;;; åºå GR0: 1ãã10ã¾ã§ã®æ´æ°ããã¹ã¦å ç®ããå¤ + MAIN START + PUSH 0,GR1 + LAD GR0,0 ; GR0ãåæå + LD GR1,FST ; GR1ã«åé ã転é + LOOP ADDL GR0,GR1 ; ã«ã¼ãå é + ADDL GR1,STEP ; GR1 <- GR1 + å ¬å·® + CPL GR1,LST ; GR1ãæ«é ãã大ããå ´åã¯çµäº + JPL FIN ; â + JUMP LOOP ; ã«ã¼ãçµç«¯ + FIN POP GR1 + RET + FST DC 1 ; åé + LST DC 10 ; æ«é + STEP DC 1 ; å ¬å·® + END + + `sum_10.casl'ã§ãã¡ã¤ã«çµäºæã®å¤ã確èªããã«ã¯ã次ã®ããã«ãã¾ãã + + $ casl2 -t sum_10.casl | grep 'GR0:' | tail -1 + #0010: GR0: 55 = #0037 = 0000000000110111 = '7' + + +File: yacasl2.info, Node: Step count, Prev: End value, Up: Register and memory + +2.3.3 ããã°ã©ã ã®ã¹ãããæ°ã表示 +------------------------------------------------ + + `grep'ã¨`wc'ãçµã¿åãããã°ãããã°ã©ã ã®ã¹ãããæ°ã表示ã§ãã¾ãã + + $ casl2 -t hello.casl | grep 'GR1:' | wc -l + 11 + + $ casl2 -t addl.casl | grep 'GR1:' | wc -l + 3 + + `sum_10.casl'ã¯ããã°ã©ã å ã«ã«ã¼ãããããããã¹ãããæ°ã大ãããªãã¾ãã + + $ casl2 -t sum_10.casl | grep 'GR0:' | wc -l + 54 + + +File: yacasl2.info, Node: Only assemble, Next: Analyze word, Prev: Register and memory, Up: Sample usage + +2.4 ã¢ã»ã³ãã«ã¨å®è¡ãå¥ã«è¡ã +=========================================== + + `casl2'ã«`-O'`ãã¡ã¤ã«å'ãæå®ããã¨ããªãã¸ã§ã¯ããã¡ã¤ã«ã使ã§ãã¾ãã + + $ casl2 -Ohello.o hello.casl + + 使ããããªãã¸ã§ã¯ããã¡ã¤ã«ã®å 容ã¯ã`od'ã使ã£ã¦ç¢ºèªã§ãã¾ãã +ããã¹ããã¡ã¤ã«ã§ã¯ãªãããã`cat'ãªã©ã§ã¯ç¢ºèªã§ãã¾ããã + + $ od -t x2 hello.o + 0000000 7001 0000 7002 0000 1210 0013 1220 0020 + 0000020 f000 0002 1210 0021 1220 0022 f000 0002 + 0000040 7120 7110 8100 0048 0065 006c 006c 006f + 0000060 002c 0020 0057 006f 0072 006c 0064 0021 + 0000100 000d 000a 0001 + 0000106 + + ãªãã¸ã§ã¯ããã¡ã¤ã«ã®å®è¡ã«ã¯ã`casl2'ã使ãã¾ãã + + $ comet2 hello.o + Hello, World! + + +File: yacasl2.info, Node: Analyze word, Next: Use CASL2LIB, Prev: Only assemble, Up: Sample usage + +2.5 1èªã®è§£æ +================= + + CASL IIã§ã¯ã1èªï¼1 wordã16ãããï¼ãåä½ã¨ãã¦ãã¼ã¿ãå¦çããã¾ãã +`dumpword'ã¯ãæå®ãã1èªã10鲿°ã16鲿°ã2鲿°ã§è¡¨ç¤ºãã¾ãã + + $ dumpword 72 + 72: 72 = #0048 = 0000000001001000 = 'H' + + +File: yacasl2.info, Node: Use CASL2LIB, Prev: Analyze word, Up: Sample usage + +2.6 CASL2ã©ã¤ãã©ãªã®ä½¿ç¨ +================================= + + YACASL2ã®`as/casl2lib'ãã£ã¬ã¯ããªã«ã¯ãCASL +IIã§è¨è¿°ãããã©ã¤ãã©ãªãã¡ã¤ã«ãæ ¼ç´ããã¦ãã¾ãã + + ãã®ãã©ã«ãã«ã¯ããã¨ãã°æ¬¡ã®ãããªããã°ã©ã ãå«ã¾ãã¦ãã¾ãã + +`OUTL' + `outl.casl'ã + GR1ã«æ ¼ç´ãããå¤ãã0以ä¸65535以ä¸ã®æ´æ°ã¨ãã¦åºåãã¾ãã + +`OUTA' + `outa.casl'ã + GR1ã«æ ¼ç´ãããå¤ãã-32767以ä¸32767以ä¸ã®æ´æ°ã¨ãã¦åºåãã¾ãã + +`MULL' + `mull.casl'ã + GR1ã¨GR2ã«æ ¼ç´ãããå¤ã0以ä¸65535以ä¸ã®æ´æ°ã¨è¦ãªããç©ãGR3ã«æ ¼ç´ãã¾ãã + +`DIVL' + `divl.casl'ã + GR1ã¨GR2ã«æ ¼ç´ãããå¤ã0以ä¸65535以ä¸ã®æ´æ°ã¨è¦ãªããåãGR3ãå°ä½ãGR0ã«æ ¼ç´ãã¾ãã + +2.6.1 æ°å¤ãåºåãã +--------------------------- + + 3ã¨1ã®åãæ±ãã`addl.casl'ã§æ¼ç®çµæãåºåããã«ã¯ãã¾ã`addl.casl'ãç·¨éãã¾ãã +CASL IIã®`CALL'å½ä»¤ã§`OUTL'ãå¯ããã°ã©ã ã¨ãã¦å¼ã³åºãã¾ãã + + $ cat addl_outl.casl + MAIN START + LD GR1,A + ADDL GR1,B + _CALL OUTL_ + RET + A DC 3 + B DC 1 + END + + 夿´ããã`casl2'ããè¤æ°ã®ãã¡ã¤ã«ãæå®ãã¦å®è¡ãã¾ãã + + $ casl2 addl_outl.casl ~/yacasl2/as/casl2lib/outl.casl + 4 + + +File: yacasl2.info, Node: casl2 invocation, Next: comet2 invocation, Prev: Sample usage, Up: Top + +3 `casl2'ã®å¼ã³åºã +************************ + + `casl2'ã¯ã弿°ã¨ãã¦æå®ãããCASLãã¡ã¤ã«ãã¢ã»ã³ãã«ããä»®æ³ãã·ã³COMET +IIä¸ã§å®è¡ãã¾ãã CASLãã¡ã¤ã«ã¯ãã¢ã»ã³ãã©è¨èªCASL +IIã§è¨è¿°ãããããã¹ããã¡ã¤ã«ã§ãã +弿°ãæå®ãããªãå ´åã¯ãã¨ã©ã¼ã¡ãã»ã¼ã¸ã表示ãã¦çµäºãã¾ãã + + $ casl2 hello.casl + + è¤æ°ã®CASLãã¡ã¤ã«ãæå®ãããã¨ã§ãå¯ããã°ã©ã ãå¼ã³åºããã¨ãã§ãã¾ãã + + $ casl2 addl_outl.casl ~/yacasl2/as/casl2lib/outl.casl + +ãªãã·ã§ã³ +--------------- + + `casl2'ã¯ã次ã®ãªãã·ã§ã³ãæå®ã§ãã¾ãã + +`-s' +`--source' + CASLãã¡ã¤ã«ã®å 容ã表示ãã¾ãã + +`-l' +`--label' + ã©ãã«ã®ä¸è¦§ã次ã®å½¢å¼ã§è¡¨ç¤ºãã¾ãã + 表示å¾ãã»ãã®ä½æ¥ãç¶è¡ãã¾ãã + + <ããã°ã©ã å>.<ã©ãã«å> ---> <ã¢ãã¬ã¹ã®16鲿°è¡¨ç¾> + +`-L' +`--labelonly' + `-l'ã¨åãå½¢å¼ã§ã©ãã«ã®ä¸è¦§ã表示ãã¾ãã + 表示å¾ãã»ãã®ä½æ¥ã¯ç¶è¡ãããçµäºãã¾ãã + +`-a' +`--assembledetail' + ã¢ã»ã³ãã«è©³ç´°çµæã表示ããã»ãã®ä½æ¥ãç¶è¡ãã¾ãã + +`-A' +`--assembledetailonly' + ã¢ã»ã³ãã«è©³ç´°çµæã表示ãã¦çµäºãã¾ãã + +`-o<OBJECTFILE>' +`--assembleout<OBJECTFILE>' + ã¢ã»ã³ãã«çµæããªãã¸ã§ã¯ããã¡ã¤ã«`<OBJECTFILE>'ã«åºåããã»ãã®ä½æ¥ãç¶è¡ãã¾ãã + åºåããããªãã¸ã§ã¯ããã¡ã¤ã«ã¯ã`comet2'ã§å®è¡ã§ãã¾ãã + ãªãã¸ã§ã¯ããã¡ã¤ã«ãæå®ããªãå ´åãåºåå ã¯`a.o'ã§ãã + ãªãã¸ã§ã¯ããã¡ã¤ã«ã¯1ã¤ã ãæå®ã§ãã¾ãã + +`-O[<OBJECTFILE>]' +`--assembleoutonly[<OBJECTFILE>]' + ã¢ã»ã³ãã«çµæããªãã¸ã§ã¯ããã¡ã¤ã«`<OBJECTFILE>'ã«åºåããçµäºãã¾ãã + åºåããããªãã¸ã§ã¯ããã¡ã¤ã«ã¯ã`comet2'ã§å®è¡ã§ãã¾ãã + ãªãã¸ã§ã¯ããã¡ã¤ã«ãæå®ããªãå ´åãåºåå ã¯`a.o'ã§ãã + ãªãã¸ã§ã¯ããã¡ã¤ã«ã¯1ã¤ã ãæå®ã§ãã¾ãã + +`-t' +`--trace' +`--tracearithmetic' + ããã°ã©ã å®è¡ä¸ã®ã¬ã¸ã¹ã¿ã®å¤ã次ã®å½¢å¼ã§è¡¨ç¤ºãã¾ãã + + <PRå¤ã®16鲿°è¡¨ç¾>: <ã¬ã¸ã¹ã¿>: <å¤ã®10鲿°è¡¨ç¾> = + <å¤ã®16鲿°è¡¨ç¾> = <å¤ã®2鲿°è¡¨ç¾>[ ='æå'] + + * + `<PRå¤ã®16鲿°è¡¨ç¾>'ã¨`<ã¬ã¸ã¹ã¿>'ã`<å¤ã®16鲿°è¡¨ç¾>'ã¯ã4ããã®16鲿°ã§è¡¨ããã¾ãã + `<PRå¤ã®16鲿°è¡¨ç¾>'ã¨`<å¤ã®16鲿°è¡¨ç¾>'ã«ã¯ãå é ã«`#'ãä»ãã¾ãã + ç¯å²ã¯`#0000'ãã`#FFFF'ã§ã + + * `<å¤ã®10鲿°è¡¨ç¾>'ã¯ç¬¦å·ã®ä»ãã10鲿°ã§ãã + ç¯å²ã¯-32768ãã32767ã§ãã + + * `<å¤ã®2鲿°è¡¨ç¾>'ã¯ã16ããã®2鲿°ã§è¡¨ããã¾ãã + ç¯å²ã¯ã`0000000000000000'ãã`1111111111111111'ã§ã + + * `[ + ='æå']'ã¯ãã¬ã¸ã¹ããªã®å¤ããæåã®çµãã®ç¯å²ã«å«ã¾ããå ´åã«è¡¨ç¤ºããã¾ãã + + 表示ãããã¬ã¸ã¹ã¿ã«ã¯ã次ã®ç¨®é¡ãããã¾ãã + + `GR0 GR1 GR2 GR3 GR4 GR5 GR6 GR7' + æ±ç¨ã¬ã¸ã¹ã¿ + + `SP' + ã¹ã¿ãã¯ãã¤ã³ã¿ + + `PR' + ããã°ã©ã ã¬ã¸ã¹ã¿ + + `FR' + ãã©ã°ã¬ã¸ã¹ã¿ + + ä¾ãã°ã次ã®ããã«è¡¨ç¤ºããã¾ãã + + #0002: GR1: 3 = #0003 = 0000000000000011 + +`-T' +`--tracelogical' + `-t'ã¨åãããã«ãããã°ã©ã å®è¡ä¸ã®ã¬ã¸ã¹ã¿ã®å¤ã表示ãã¾ãã + ãã ã`-t'ã¨ç°ãªãã`<å¤ã®10鲿°è¡¨ç¾>'ã¯ç¬¦å·ã®ä»ããªã10鲿°ã§ãã + å¤ã®ç¯å²ã¯0ãã65535ã§ãã + +`-d' +`--dump' + ã¡ã¢ãªã®å 容ããã¹ã¦è¡¨ç¤ºãã¾ãã + +`-M <MEMORYSIZE>' +`--memorysize <MEMORYSIZE>' + ã¢ã»ã³ãã«ããã³å®è¡æã®ã¡ã¢ãªãµã¤ãº`<MEMORYSIZE>'ã0ãã65535ã®ç¯å²ã§æå®ãã¾ãã + æå®ããªãå ´åã512ã§ãã + +`-C <CLOCKS>' +`--clocks <CLOCKS>' + å®è¡æã®ã¯ããã¯å¨æ³¢æ°`<CLOCKS>'ã0ãã大ããæ´æ°ã§æå®ãã¾ãã + æå®ããªãå ´åãã¯ããã¯å¨æ³¢æ°ã¯5000000ã§ãã + +`-v' +`--version' + `casl2'ã®ãã¼ã¸ã§ã³ã表示ãã¦çµäºãã¾ãã + +`-h' +`--help' + `casl2'ã®ä½¿ç¨æ¹æ³ã表示ãã¦çµäºãã¾ãã + + +File: yacasl2.info, Node: comet2 invocation, Next: dumpword invocation, Prev: casl2 invocation, Up: Top + +4 `comet2'ã®å¼ã³åºã +************************* + + `comet2'ã¯ã弿°ã¨ãã¦æå®ããããªãã¸ã§ã¯ããã¡ã¤ã«ãä»®æ³ãã·ã³COMET +IIä¸ã§å®è¡ãã¾ãã +ãªãã¸ã§ã¯ããã¡ã¤ã«ã¯ã`casl'ã«`-o'ã¾ãã¯`-O'ãæå®ãã¦åºåãã¾ãã + + $ comet2 hello.o + + 弿°ã§æå®ã§ãããªãã¸ã§ã¯ããã¡ã¤ã«ã¯1ã¤ã ãã§ãã +弿°ãæå®ãããªãå ´åã¯ãã¨ã©ã¼ã¡ãã»ã¼ã¸ã表示ãã¦çµäºãã¾ãã +è¤æ°ã®å¼æ°ãæå®ããå ´åã2çªç®ä»¥éã®å¼æ°ã¯ç¡è¦ããã¾ãã + +ãªãã·ã§ã³ +--------------- + + `comet2'ã¯ã次ã®ãªãã·ã§ã³ãæå®ã§ãã¾ãã + +`-t' +`--trace' +`--tracearithmetic' + ããã°ã©ã å®è¡ä¸ã®ã¬ã¸ã¹ã¿ã®å¤ã次ã®å½¢å¼ã§è¡¨ç¤ºãã¾ãã + `<å¤ã®10鲿°è¡¨ç¾>'ã¯ç¬¦å·ã®ä»ãã10鲿°ã§ãã + ç¯å²ã¯-32768ãã32767ã§ãã + + <PRå¤ã®16鲿°è¡¨ç¾>: <ã¬ã¸ã¹ã¿>: <å¤ã®10鲿°è¡¨ç¾> = <å¤ã®16鲿°è¡¨ç¾> = <å¤ã®2鲿°è¡¨ç¾>[ ='æå'] + + * + `<PRå¤ã®16鲿°è¡¨ç¾>'ã¨`<å¤ã®16鲿°è¡¨ç¾>'ã¯ãå é ã«`#'ãä»ãã4ããã®16鲿°ã§è¡¨ããã¾ãã + ç¯å²ã¯ã`#0000'ãã`#FFFF'ã§ã + + * `<å¤ã®2鲿°è¡¨ç¾>'ã¯ã16ããã®2鲿°ã§è¡¨ããã¾ãã + ç¯å²ã¯ã`0000000000000000'ãã`1111111111111111'ã§ã + + * `[ + ='æå']'ã¯ãã¬ã¸ã¹ããªã®å¤ããæåã®çµãã®ç¯å²ã«å«ã¾ããå ´åã«è¡¨ç¤ºããã¾ãã + + ä¾ãã°ã次ã®ããã«è¡¨ç¤ºããã¾ãã + + #0002: GR1: 3 = #0003 = 0000000000000011 + + 表示ãããã¬ã¸ã¹ã¿ã«ã¯ã次ã®ç¨®é¡ãããã¾ãã + + `GR0 GR1 GR2 GR3 GR4 GR5 GR6 GR7' + æ±ç¨ã¬ã¸ã¹ã¿ + + `SP' + ã¹ã¿ãã¯ãã¤ã³ã¿ + + `PR' + ããã°ã©ã ã¬ã¸ã¹ã¿ + + `FR' + ãã©ã°ã¬ã¸ã¹ã¿ + +`-T' +`--tracelogical' + `-t'ã¨åãããã«ãããã°ã©ã å®è¡ä¸ã®ã¬ã¸ã¹ã¿ã®å¤ã表示ãã¾ãã + ãã ãã`-t'ã¨ç°ãªãã`<å¤ã®10鲿°è¡¨ç¾>'ã¯ç¬¦å·ã®ä»ããªã10鲿°ã§ãã + å¤ã®ç¯å²ã¯0ãã65535ã§ãã + +`-d' +`--dump' + ã¡ã¢ãªã®å 容ããã¹ã¦è¡¨ç¤ºãã¾ãã + +`-M <MEMORYSIZE>' +`--memorysize <MEMORYSIZE>' + å®è¡æã®ã¡ã¢ãªãµã¤ãº`<MEMORYSIZE>'ã0ãã65535ã®ç¯å²ã§æå®ãã¾ãã + æå®ããªãå ´åã512ã§ãã + +`-C <CLOCKS>' +`--clocks <CLOCKS>' + å®è¡æã®ã¯ããã¯å¨æ³¢æ°`<CLOCKS>'ã0ãã大ããæ´æ°ã§æå®ãã¾ãã + æå®ããªãå ´åã5000000ã§ãã + +`-v' +`--version' + `comet2'ã®ãã¼ã¸ã§ã³ã表示ãã¦çµäºãã¾ãã + +`-h' +`--help' + `comet2'ã®ä½¿ç¨æ¹æ³ã表示ãã¦çµäºãã¾ãã + + +File: yacasl2.info, Node: dumpword invocation, Next: CASL2LIB Manual, Prev: comet2 invocation, Up: Top + +5 `dumpword'ã®å¼ã³åºã +*************************** + + `dumpword'ã¯å¼æ°ã¨ãã¦æå®ãããæ°å¤ããæ´æ°ã#0000ãã#FFFFã¾ã§ã®ç¯å²ã®16鲿°ã2鲿°ã§è¡¨ç¤ºãã¾ãã +æåã®çµã«è©²å½ããå ´åã¯ãã = ãã®ãããã«æåã表示ããã¾ãã +弿°ã¯ã10鲿°ã¾ãã¯å é ã«ã#ãã®ä»ãã16鲿°ã§æå®ãã¾ãã +表示ãããæ´æ°ã¯ããªãã·ã§ã³ã«ãã符å·ä»ãã符å·ãªãããæå®ãã¾ãã +ãªãã·ã§ã³ãªãã®å ´åã¯ç¬¦å·ä»ãã§ãã +æ´æ°ã®ç¯å²ã¯ã符å·ä»ãã®å ´åã¯-32768以ä¸32767以ä¸ã符å·ãªãã®å ´åã¯0以ä¸65535以ä¸ã§ãã + + $ dumpword 10 + 10: 10 = #000A = 0000000000001010 = '\n' + + 弿°ãæå®ãããªãå ´åã¯ãä½¿ãæ¹ã表示ãã¦çµäºãã¾ãã +è¤æ°ã®å¼æ°ãæå®ããå ´åã1ã¤ç®ã®å¼æ°ã ãã表示ããã2ã¤ç®ä»¥éã®å¼æ°ã¯ç¡è¦ããã¾ãã + +注æ +------ + + ãã¤ãã¹ã®æ°ã16鲿°ã¯ã·ã§ã«ã®ä»æ§ã«ããããã®ã¾ã¾ã§ã¯æå®ã§ãã¾ããã + + ãã¤ãã¹ã®æ°ãæå®ããã¨ãã¯ã次ã®ããã«`--'ãä»ãã¾ãã + + $ dumpword -- -72 + -72: -72 = #FFB8 = 1111111110111000 + + å é ã«ã#ããä»ãã¦16鲿°ãæå®ããã¨ãã¯ã次ã®ããã«ã'ãã§å²ã¿ã¾ãã + + $ dumpword '#0048' + #0048: 72 = #0048 = 0000000001001000 = 'H' + +ãªãã·ã§ã³ +--------------- + + `dumpword'ã¯ã次ã®ãªãã·ã§ã³ãæå®ã§ãã¾ãã + +`-a' +`--arithmetic' + åºåãããæ´æ°ã®ç¯å²ã-32,768以ä¸32,767以ä¸ã«ãã¾ãã + ãªãã·ã§ã³ãªãã®å ´åã¨åãã§ãã + +`-l' +`--logical' + åºåãããæ´æ°ã®ç¯å²ã0以ä¸65,535以ä¸ã«ãã¾ãã + +`-v' +`--version' + `dumpword'ã®ãã¼ã¸ã§ã³ã表示ãã¦çµäºãã¾ãã + +`-h' +`--help' + `dumpword'ã®ä½¿ç¨æ¹æ³ã表示ãã¦çµäºãã¾ãã + + +File: yacasl2.info, Node: CASL2LIB Manual, Prev: dumpword invocation, Up: Top + +6 CASL2LIBããã¥ã¢ã« +************************* + +* Menu: + +* ABS:: ABS - `abs.casl' +* DIVA:: DIVA - `diva.casl' +* DIVL:: DIVL - `divl.casl' +* INL:: INL - `inl.casl' +* L2STR:: L2STR - `l2str.casl' +* MAX:: MAX - `max.casl' +* MINIM:: MINIM - `minim.casl' +* MULA:: MULA - `mula.casl' +* MULL:: MULL - `mull.casl' +* OUTA:: OUTA - `outa.casl' +* OUTB:: OUTB - `outb.casl' +* OUTD_Q15:: OUTD_Q15 - `outd_q15.casl' +* OUTL:: OUTL - `outl.casl' +* REV:: REV - `rev.casl' +* STR2L:: STR2L - `str2l.casl' + + +File: yacasl2.info, Node: ABS, Next: DIVA, Prev: CASL2LIB Manual, Up: CASL2LIB Manual + +6.1 `ABS' - `abs.casl' +====================== + + GR1ã符å·ä»ãæ´æ°ã¨ã¿ãªãã絶対å¤ã«å¤æ + +å ¥å +------ + +`GR1' + 符å·ä»ãæ´æ° + +åºå +------ + +`GR1' + å ¥åãããå¤ã®çµ¶å¯¾å¤ + +`OF' + å ¥åãããå¤ã-32768ã®å ´åã1 + +`SF' + å ¥åãããå¤ãè² æ°ï¼-32767ãã-1ï¼ã®å ´åã1 + +ä¾åããå¯ããã°ã©ã +------------------------------ + + ãªã + +使ç¨ä¾ +--------- + + ;;; CASL2LIB > ABSãå¼ã³åºãã-1ã®çµ¶å¯¾å¤ã表示 + MAIN START + LD GR1,A + CALL ABS + CALL OUTA + RET + A DC -1 + END + + $ casl2 call_abs.casl $CASL2LIB/abs.casl $CASL2LIB/outa.casl \ + $CASL2LIB/divl.casl $CASL2LIB/rev.casl + 1 + + +File: yacasl2.info, Node: DIVA, Next: DIVL, Prev: ABS, Up: CASL2LIB Manual + +6.2 `DIVA' - `diva.casl' +======================== + + 符å·ä»ãæ´æ°ã®å²ç®ãçç®æ¹å¼ã§è¡ã + +å ¥å +------ + +`GR1' + è¢«é¤æ° + +`GR2' + 餿° + +åºå +------ + +`GR0' + å + +`GR3' + å°ä½ + +`OF' + 次ã®å ´åã1 + * GR2ã0 + + * GR1ã-32768 + + * GR2ã-32768 + +`SF' + åãè² æ°(-32767ãã-1)ã®å ´åã1 + +`ZF' + åã0ã®å ´åã1 + +ä¾åããå¯ããã°ã©ã +------------------------------ + + * `DIVL' + +使ç¨ä¾ +--------- + + ;; CASL2LIB > DIVAãå¼ã³åºãã-32767 / 255 ã®åã¨å°ä½ã表示 + MAIN START + BEGIN LD GR1,A + LD GR2,B + CALL DIVA + JOV ERR + LD GR1,GR0 + CALL OUTA + LD GR1,GR3 + CALL OUTA + JUMP FIN + ERR OUT EMSG,ELEN + FIN RET + A DC -32767 + B DC 255 + EMSG DC 'error' + ELEN DC 5 + END + + $ casl2 call_diva.casl $CASL2LIB/diva.casl $CASL2LIB/divl.casl \ + $CASL2LIB/outa.casl $CASL2LIB/abs.casl $CASL2LIB/rev.casl + -128 + -127 + + +File: yacasl2.info, Node: DIVL, Next: INL, Prev: DIVA, Up: CASL2LIB Manual + +6.3 `DIVL' - `divl.casl' +======================== + + 符å·ãªãæ´æ°ã®å²ç®ãçç®æ¹å¼ã§è¡ã + +å ¥å +------ + +`GR1' + è¢«é¤æ° + +`GR2' + 餿° + +åºå +------ + +`GR0' + å + +`GR3' + å°ä½ + +`OF' + GR2ã0ã®å ´åã1 + +`SF' + åã32768ãã65535ã®å ´åã1 + +`ZF' + åã0ã®å ´åã1 + +ä¾åããå¯ããã°ã©ã +------------------------------ + + ãªã + +使ç¨ä¾ +--------- + + ;; CASL2LIB > DIVLãå¼ã³åºãã65534 / 255 ã®åã¨å°ä½ã表示 + MAIN START + BEGIN LD GR1,A + LD GR2,B + CALL DIVL + JOV ERR + LD GR1,GR0 + CALL OUTL + LD GR1,GR3 + CALL OUTL + JUMP FIN + ERR OUT EMSG,ELEN + FIN RET + A DC 65534 + B DC 255 + EMSG DC 'error' + ELEN DC 5 + END + + $ casl2 call_divl.casl $CASL2LIB/divl.casl $CASL2LIB/outl.casl \ + $CASL2LIB/rev.casl + 256 + 254 + + +File: yacasl2.info, Node: INL, Next: L2STR, Prev: DIVL, Up: CASL2LIB Manual + +6.4 `INL' - `inl.casl' +====================== + + 符å·ãªãæ´æ°ã®å ¥åãåãä»ãã + +å ¥å +------ + +`æ¨æºå ¥å' + 符å·ãªãæ´æ° + +åºå +------ + +`GR1' + å ¥åããã符å·ãªãæ´æ° + +`GR0' + æååã®é·ãã æ°å以å¤ãå ¥åãããå ´åã¯`#FFFF' + +ä¾åããå¯ããã°ã©ã +------------------------------ + + * `STR2L' + +使ç¨ä¾ +--------- + + 次ã®ã³ãã³ããå®è¡ããã¨ãæ°å¤ã®å ¥åãåãä»ããããå ¥åãããæ°å¤ã表示ãããã + + ;;; casl2 -M1024 call_inl.casl $CASL2LIB/inl.casl $CASL2LIB/str2l.casl $CASL2LIB/mull.casl \ + ;;; $CASL2LIB/outl.casl $CASL2LIB/divl.casl $CASL2LIB/rev.casl + MAIN START + LOOP CALL INL ; GR1ã«æ°å¤ãGR0ã«æååã®é·ã + JOV OV + AND GR0,GR0 + JZE FIN + CPL GR0,=#FFFF + JZE NAN + CALL OUTL + JUMP LOOP + OV CPL GR0,=#FFFF + JZE LENOV + OUT OVMSG,MLEN1 + JUMP LOOP + NAN OUT NANMSG,MLEN2 + JUMP LOOP + LENOV OUT LENOVMSG,MLEN3 + FIN RET + OVMSG DC 'Over 65535' + MLEN1 DC 10 + NANMSG DC 'Not integer' + MLEN2 DC 11 + LENOVMSG DC 'Str too long. Stop' + MLEN3 DC 18 + END + + $ casl2 -M1024 call_inl.casl $CASL2LIB/inl.casl $CASL2LIB/str2l.casl $CASL2LIB/mull.casl \ + $CASL2LIB/outl.casl $CASL2LIB/divl.casl $CASL2LIB/rev.casl + + +File: yacasl2.info, Node: L2STR, Next: MAX, Prev: INL, Up: CASL2LIB Manual + +6.5 `L2STR' - `l2str.casl' +========================== + + 符å·ãªãæ´æ°ãæååã«å¤æãã + +å ¥å +------ + +`GR1' + 符å·ãªãæ´æ° + +`GR2' + 夿ããæååãæ ¼ç´ããã¢ãã¬ã¹ + +åºå +------ + +`GR0' + æååã®é·ã + +ä¾åããå¯ããã°ã©ã +------------------------------ + + * `DIVL' + + +File: yacasl2.info, Node: MAX, Next: MINIM, Prev: L2STR, Up: CASL2LIB Manual + +6.6 `MAX' - `max.casl' +====================== + + é£ç¶ããè¤æ°ã®WORDã符å·ä»ãæ´æ°ã¨ã¿ãªãã¦æå¤§å¤ãè¿ã + +å ¥å +------ + +`GR1' + WORDå¤ãæ ¼ç´ããã¢ãã¬ã¹ + +`GR2' + å¤ã®åæ° + +åºå +------ + +`GR0' + æå¤§å¤ + +ä¾åããå¯ããã°ã©ã +------------------------------ + + ãªã + + +File: yacasl2.info, Node: MINIM, Next: MULA, Prev: MAX, Up: CASL2LIB Manual + +6.7 `MINIM' - `minim.casl' +========================== + + é£ç¶ããè¤æ°ã®WORDã符å·ä»ãæ´æ°ã¨ã¿ãªãã¦æå°å¤ãè¿ã + +å ¥å +------ + +`GR1' + WORDå¤ãæ ¼ç´ããã¢ãã¬ã¹ + +`GR2' + å¤ã®åæ° + +åºå +------ + +`GR0' + æå°å¤ + +ä¾åããå¯ããã°ã©ã +------------------------------ + + ãªã + + +File: yacasl2.info, Node: MULA, Next: MULL, Prev: MINIM, Up: CASL2LIB Manual + +6.8 `MULA' - `mula.casl' +======================== + + +File: yacasl2.info, Node: MULL, Next: OUTA, Prev: MULA, Up: CASL2LIB Manual + +6.9 `MULL' - `mull.casl' +======================== + + +File: yacasl2.info, Node: OUTA, Next: OUTB, Prev: MULL, Up: CASL2LIB Manual + +6.10 `OUTA' - `outa.casl' +========================= + + +File: yacasl2.info, Node: OUTB, Next: OUTD_Q15, Prev: OUTA, Up: CASL2LIB Manual + +6.11 `OUTB' - `outb.casl' +========================= + + +File: yacasl2.info, Node: OUTD_Q15, Next: OUTL, Prev: OUTB, Up: CASL2LIB Manual + +6.12 `OUTD_Q15' - `outd_q15.casl' +================================= + + +File: yacasl2.info, Node: OUTL, Next: REV, Prev: OUTD_Q15, Up: CASL2LIB Manual + +6.13 `OUTL' - `outl.casl' +========================= + + +File: yacasl2.info, Node: REV, Next: STR2L, Prev: OUTL, Up: CASL2LIB Manual + +6.14 `REV' - `rev.casl' +======================= + + +File: yacasl2.info, Node: STR2L, Prev: REV, Up: CASL2LIB Manual + +6.15 `STR2L' - `str2l.casl' +=========================== + + + +Tag Table: +Node: Top441 +Node: Overview847 +Node: Sample usage2911 +Node: Simple output3789 +Node: Assemble result5169 +Node: Register and memory8091 +Node: Register specify11230 +Node: End value12267 +Node: Step count13817 +Node: Only assemble14383 +Node: Analyze word15311 +Node: Use CASL2LIB15712 +Node: casl2 invocation17247 +Node: comet2 invocation21748 +Node: dumpword invocation24607 +Node: CASL2LIB Manual26628 +Node: ABS27546 +Node: DIVA28410 +Node: DIVL29644 +Node: INL30755 +Node: L2STR32398 +Node: MAX32812 +Node: MINIM33221 +Node: MULA33637 +Node: MULL33772 +Node: OUTA33906 +Node: OUTB34042 +Node: OUTD_Q1534182 +Node: OUTL34338 +Node: REV34477 +Node: STR2L34609 + +End Tag Table + + +Local Variables: +coding: utf-8 +End: -- 2.18.0