?? vmbeta.txt
字號:
VmBeta's Instructions and I/O interface
虛擬機Beta的指令集及I/O說明
1.虛擬機模擬棧式CPU一共有八個寄存器:
RP:指令尋址寄存器 RF:標志寄存器 RS:棧寄存器 RB:輔助棧寄存器
R0,R1,R2,R3:通用寄存器
標志寄存器RF的第0位到第3位分別為FZ(零標志) FB(小于標志) FA(大于)
當用CMP指令比較兩個變量時比較的結果會更改三個標志,在用條件跳轉
指令JPC進行跳轉時會根據JPC所給的條件查詢三個標志進行條件跳轉
2.虛擬機指令有JMP(無條件跳轉)JPC(條件跳轉)CALL(調用)RET(返回)LD(數據
裝載)CAL(數據運算)CMP(數據比較)PUSH(壓棧)POP(彈棧)NOOP(空指令)
IN(輸入指令)OUT(輸出指令)EXIT(推出指令)等13條指令
支持類型有DWORD(32bit)/WORD(16b)/BYTE(8b)/INT(32b)/FLOAT(32b)
3.輸入:INPUT
00.轉化FLOAT類型的R3數據到INT類型
01.轉化INT類型的R3數據到FLOAT類型
02.分配字符串,返回句柄
03.轉化R3的字符串到INT類型并且返回
04.將R3的INT數字轉化成R2所指字符串
05.將R3的字符串設置成R2的字符串
06.將R3的字符串末尾添加R2的字符串
07.求R3字符串的長度
08.釋放R3的字符串
09.比較R3,R2兩個字符串
0A.將R2的FLOAT類型轉換成R3所指字符串
0B.將R3字符串轉換成FLOAT類型并返回
0C.返回R3字符串的第R2個字符
0D.設置R3字符串第R2個字符成R1
0E.返回版本號前16個字節是主版本號,后16個字節是附版本號
0F.返回一個1KHz的時鐘值,這個時鐘從程序開始運行便啟動
10.返回sin((float)R3)
11.返回cos((float)R3)
12.返回tan((float)R3)
13.返回sqrt((float)R3)
14.返回abs((int)R3)
15.返回abs((float)R3)
4.輸出:OUTPUT
00.輸出帶'\n'的整數
01.輸出帶'\n'的字符串
02.輸出不帶'\n'的字符串
03.輸出不帶'\n'的整數
04.輸出單個字符
05.輸出不帶'\n'的浮點
0A.輸入整數到R3
0B.輸入字符串到R3
0C.輸入浮點數到R3
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -