small adjustments
This commit is contained in:
		
							parent
							
								
									43fd3df629
								
							
						
					
					
						commit
						1cd71875ac
					
				
					 2 changed files with 32 additions and 2 deletions
				
			
		|  | @ -1,5 +1,7 @@ | ||||||
| This it the text of IR-81, | This it the text of IR-81, | ||||||
| DESCRIPTION OF A MACHINE ARCHITECTURE FOR  USE WITH BLOCK  STRUCTURED  LANGUAGES | DESCRIPTION OF A MACHINE ARCHITECTURE FOR USE WITH BLOCK STRUCTURED LANGUAGES | ||||||
|  | 
 | ||||||
|  | The file em.i (text of the defining interpreter) was hand-edited from int/em.p | ||||||
| 
 | 
 | ||||||
| To print, set NROFF and TBL in the Makefile and call  make. | To print, set NROFF and TBL in the Makefile and call  make. | ||||||
| It uses the kun macro package which is also distributed. | It uses the kun macro package which is also distributed. | ||||||
|  |  | ||||||
|  | @ -588,7 +588,7 @@ Instructions that check for undefined integer or floating-point | ||||||
| values and underflow or overflow | values and underflow or overflow | ||||||
| are indicated below by (*). | are indicated below by (*). | ||||||
| .N 1 | .N 1 | ||||||
| .DS B | .DS | ||||||
| .ta 12n | .ta 12n | ||||||
| GROUP 1 \- LOAD | GROUP 1 \- LOAD | ||||||
| 
 | 
 | ||||||
|  | @ -608,7 +608,9 @@ GROUP 1 \- LOAD | ||||||
|   LDE \*g :	Load double external (two consecutive externals are stacked) |   LDE \*g :	Load double external (two consecutive externals are stacked) | ||||||
|   LDF \*f :	Load double offsetted (top of stack + \*f yield address) |   LDF \*f :	Load double offsetted (top of stack + \*f yield address) | ||||||
|   LPI \*p :	Load procedure identifier |   LPI \*p :	Load procedure identifier | ||||||
|  | .DE | ||||||
| 
 | 
 | ||||||
|  | .DS | ||||||
| GROUP 2 \- STORE | GROUP 2 \- STORE | ||||||
| 
 | 
 | ||||||
|   STL \*l :	Store local or parameter |   STL \*l :	Store local or parameter | ||||||
|  | @ -620,7 +622,9 @@ GROUP 2 \- STORE | ||||||
|   SDL \*l :	Store double local or parameter |   SDL \*l :	Store double local or parameter | ||||||
|   SDE \*g :	Store double external |   SDE \*g :	Store double external | ||||||
|   SDF \*f :	Store double offsetted |   SDF \*f :	Store double offsetted | ||||||
|  | .DE | ||||||
| 
 | 
 | ||||||
|  | .DS | ||||||
| GROUP 3 \- INTEGER ARITHMETIC | GROUP 3 \- INTEGER ARITHMETIC | ||||||
| 
 | 
 | ||||||
|   ADI \*w :	Addition (*) |   ADI \*w :	Addition (*) | ||||||
|  | @ -631,7 +635,9 @@ GROUP 3 \- INTEGER ARITHMETIC | ||||||
|   NGI \*w :	Negate (two's complement) (*) |   NGI \*w :	Negate (two's complement) (*) | ||||||
|   SLI \*w :	Shift left (*) |   SLI \*w :	Shift left (*) | ||||||
|   SRI \*w :	Shift right (*) |   SRI \*w :	Shift right (*) | ||||||
|  | .DE | ||||||
| 
 | 
 | ||||||
|  | .DS | ||||||
| GROUP 4 \- UNSIGNED ARITHMETIC | GROUP 4 \- UNSIGNED ARITHMETIC | ||||||
| 
 | 
 | ||||||
|   ADU \*w :	Addition |   ADU \*w :	Addition | ||||||
|  | @ -641,7 +647,9 @@ GROUP 4 \- UNSIGNED ARITHMETIC | ||||||
|   RMU \*w :	Remainder |   RMU \*w :	Remainder | ||||||
|   SLU \*w :	Shift left |   SLU \*w :	Shift left | ||||||
|   SRU \*w :	Shift right |   SRU \*w :	Shift right | ||||||
|  | .DE | ||||||
| 
 | 
 | ||||||
|  | .DS | ||||||
| GROUP 5 \- FLOATING POINT ARITHMETIC | GROUP 5 \- FLOATING POINT ARITHMETIC | ||||||
| 
 | 
 | ||||||
|   ADF \*w :	Floating add (*) |   ADF \*w :	Floating add (*) | ||||||
|  | @ -651,13 +659,17 @@ GROUP 5 \- FLOATING POINT ARITHMETIC | ||||||
|   NGF \*w :	Floating negate (*) |   NGF \*w :	Floating negate (*) | ||||||
|   FIF \*w :	Floating multiply and split integer and fraction part (*) |   FIF \*w :	Floating multiply and split integer and fraction part (*) | ||||||
|   FEF \*w :	Split floating number in exponent and fraction part (*) |   FEF \*w :	Split floating number in exponent and fraction part (*) | ||||||
|  | .DE | ||||||
| 
 | 
 | ||||||
|  | .DS | ||||||
| GROUP 6 \- POINTER ARITHMETIC | GROUP 6 \- POINTER ARITHMETIC | ||||||
| 
 | 
 | ||||||
|   ADP \*f :	Add \*f to pointer on top of stack |   ADP \*f :	Add \*f to pointer on top of stack | ||||||
|   ADS \*w :	Add \*w-byte value and pointer |   ADS \*w :	Add \*w-byte value and pointer | ||||||
|   SBS \*w :	Subtract pointers in same fragment and push diff as size \*w integer |   SBS \*w :	Subtract pointers in same fragment and push diff as size \*w integer | ||||||
|  | .DE | ||||||
| 
 | 
 | ||||||
|  | .DS | ||||||
| GROUP 7 \- INCREMENT/DECREMENT/ZERO | GROUP 7 \- INCREMENT/DECREMENT/ZERO | ||||||
| 
 | 
 | ||||||
|   INC \*- :	Increment word on top of stack by 1 (*) |   INC \*- :	Increment word on top of stack by 1 (*) | ||||||
|  | @ -670,7 +682,9 @@ GROUP 7 \- INCREMENT/DECREMENT/ZERO | ||||||
|   ZRE \*g :	Zero external |   ZRE \*g :	Zero external | ||||||
|   ZRF \*w :	Load a floating zero of size \*w |   ZRF \*w :	Load a floating zero of size \*w | ||||||
|   ZER \*w :	Load \*w zero bytes |   ZER \*w :	Load \*w zero bytes | ||||||
|  | .DE | ||||||
| 
 | 
 | ||||||
|  | .DS				\" ??? | ||||||
| GROUP 8 \- CONVERT    (stack:	source, source size, dest. size (top)) | GROUP 8 \- CONVERT    (stack:	source, source size, dest. size (top)) | ||||||
| 
 | 
 | ||||||
|   CII \*- :	Convert integer to integer (*) |   CII \*- :	Convert integer to integer (*) | ||||||
|  | @ -682,7 +696,9 @@ GROUP 8 \- CONVERT    (stack:	source, source size, dest. size (top)) | ||||||
|   CIU \*- :	Convert integer to unsigned |   CIU \*- :	Convert integer to unsigned | ||||||
|   CUU \*- :	Convert unsigned to unsigned |   CUU \*- :	Convert unsigned to unsigned | ||||||
|   CFU \*- :	Convert floating to unsigned |   CFU \*- :	Convert floating to unsigned | ||||||
|  | .DE | ||||||
| 
 | 
 | ||||||
|  | .DS | ||||||
| GROUP 9 \- LOGICAL | GROUP 9 \- LOGICAL | ||||||
| 
 | 
 | ||||||
|   AND \*w :	Boolean and on two groups of \*w bytes |   AND \*w :	Boolean and on two groups of \*w bytes | ||||||
|  | @ -691,18 +707,24 @@ GROUP 9 \- LOGICAL | ||||||
|   COM \*w :	Complement (one's complement of top \*w bytes) |   COM \*w :	Complement (one's complement of top \*w bytes) | ||||||
|   ROL \*w :	Rotate left a group of \*w bytes |   ROL \*w :	Rotate left a group of \*w bytes | ||||||
|   ROR \*w :	Rotate right a group of \*w bytes |   ROR \*w :	Rotate right a group of \*w bytes | ||||||
|  | .DE | ||||||
| 
 | 
 | ||||||
|  | .DS | ||||||
| GROUP 10 \- SETS | GROUP 10 \- SETS | ||||||
| 
 | 
 | ||||||
|   INN \*w :	Bit test on \*w byte set (bit number on top of stack) |   INN \*w :	Bit test on \*w byte set (bit number on top of stack) | ||||||
|   SET \*w :	Create singleton \*w byte set with bit n on (n is top of stack) |   SET \*w :	Create singleton \*w byte set with bit n on (n is top of stack) | ||||||
|  | .DE | ||||||
| 
 | 
 | ||||||
|  | .DS | ||||||
| GROUP 11 \- ARRAY | GROUP 11 \- ARRAY | ||||||
| 
 | 
 | ||||||
|   LAR \*w :	Load array element, descriptor contains integers of size \*w |   LAR \*w :	Load array element, descriptor contains integers of size \*w | ||||||
|   SAR \*w :	Store array element |   SAR \*w :	Store array element | ||||||
|   AAR \*w :	Load address of array element |   AAR \*w :	Load address of array element | ||||||
|  | .DE | ||||||
| 
 | 
 | ||||||
|  | .DS | ||||||
| GROUP 12 \- COMPARE | GROUP 12 \- COMPARE | ||||||
| 
 | 
 | ||||||
|   CMI \*w :	Compare \*w byte integers, Push negative, zero, positive for <, = or > |   CMI \*w :	Compare \*w byte integers, Push negative, zero, positive for <, = or > | ||||||
|  | @ -717,7 +739,9 @@ GROUP 12 \- COMPARE | ||||||
|   TNE \*- :	True if not equal, i.e. iff top of stack non zero |   TNE \*- :	True if not equal, i.e. iff top of stack non zero | ||||||
|   TGE \*- :	True if greater or equal, i.e. iff top of stack >= 0 |   TGE \*- :	True if greater or equal, i.e. iff top of stack >= 0 | ||||||
|   TGT \*- :	True if greater, i.e. iff top of stack > 0 |   TGT \*- :	True if greater, i.e. iff top of stack > 0 | ||||||
|  | .DE | ||||||
| 
 | 
 | ||||||
|  | .DS				\" ??? | ||||||
| GROUP 13 \- BRANCH | GROUP 13 \- BRANCH | ||||||
| 
 | 
 | ||||||
|   BRA \*b :	Branch unconditionally to label \*b |   BRA \*b :	Branch unconditionally to label \*b | ||||||
|  | @ -735,14 +759,18 @@ GROUP 13 \- BRANCH | ||||||
|   ZNE \*b :	Branch not zero |   ZNE \*b :	Branch not zero | ||||||
|   ZGE \*b :	Branch greater or equal zero |   ZGE \*b :	Branch greater or equal zero | ||||||
|   ZGT \*b :	Branch greater than zero |   ZGT \*b :	Branch greater than zero | ||||||
|  | .DE | ||||||
| 
 | 
 | ||||||
|  | .DS | ||||||
| GROUP 14 \- PROCEDURE CALL | GROUP 14 \- PROCEDURE CALL | ||||||
| 
 | 
 | ||||||
|   CAI \*- :	Call procedure (procedure identifier on stack) |   CAI \*- :	Call procedure (procedure identifier on stack) | ||||||
|   CAL \*p :	Call procedure (with identifier \*p) |   CAL \*p :	Call procedure (with identifier \*p) | ||||||
|   LFR \*s :	Load function result |   LFR \*s :	Load function result | ||||||
|   RET \*z :	Return (function result consists of top \*z bytes) |   RET \*z :	Return (function result consists of top \*z bytes) | ||||||
|  | .DE | ||||||
| 
 | 
 | ||||||
|  | .DS | ||||||
| GROUP 15 \- MISCELLANEOUS | GROUP 15 \- MISCELLANEOUS | ||||||
| 
 | 
 | ||||||
|   ASP \*f :	Adjust the stack pointer by \*f |   ASP \*f :	Adjust the stack pointer by \*f | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue