📄 +
字号:
─────┼───┼──────┼─────────────────
返回 │RET │ │((SP))=>PC, (SP)+1=>SP
━━━━━┷━━━┷━━━━━━┷━━━━━━━━━━━━━━━━━
注:
─────┬────────
指 令 │ 转移时FR的值
─────┼────────
JPZ │ 00 或 01
─────┼────────
JMI │ 10
─────┼────────
JNZ │ 00 或 10
─────┼────────
JZE │ 01
─────┴────────
*这些指令还根据执行结果(GR中的值),形成FR的值。其规则是:
若GR中的第0位为0且其余各位不全为0,则FR被置成00;
若GR中的16位全为0,则FR被置成01;
若GR中的第0位为1,则FR被置成10;
二、汇编语言CASL说明
COMET的汇编语言是CASL,其语法规则说明如下:
1. 指令的种类和书写格式
CASL由4种伪指令(START,END,DS,DC) 、3种宏指令(IN,OUT,EXIT)和23种
符号指令(COMET的指令)组成。
CASL的每条指令书写在一行内(最多不超过72个字符) ,它的书写格式如附表2
所示。
附表2
━━━━━┯━━━━┯━━━━━━━┯━━━━━
标 号 │ 指令码 │ 操 作 数 │ 注 释
─────┼────┼───────┼─────
[LABEL] │ START │ [LABEL] │
─────┼────┼───────┼─────
│ END │ 空 白 │
─────┼────┼───────┼─────
[LABEL] │ DC │ 常 数 │
─────┼────┼───────┼─────
[LABEL] │ DS │ 区域的字数 │
─────┼────┼───────┼─────
[LABEL] │ IN │ALABEL,NLABEL │
─────┼────┼───────┼─────
[LABEL] │ OUT │ALABEL,NLABEL │
─────┼────┼───────┼─────
[LABEL] │ EXIT │ 空 白 │
─────┼────┴───────┼─────
[LABEL] │ 符号指令参照上节 7 │
━━━━━┷━━━━━━━━━━━━┷━━━━━
由附表2可知,CASL每条指令由标号(可缺省) 、指令码、操作数(可缺省)和注
释4栏构成,每一栏的书写规则如下:
标 号 栏:从第一个字符位置开始,最多不超过6个字符位置。
指令码栏:在无标号时,从第二个字符以后的任意字符位置开始;在有标号时,
标号后面至少有一个空白,从其后的任意字符位置开始。
操作数栏:指令码后至少有一个空白,其后到第72个字符位置,不能继续到下
一行。
注 释 栏:行里有分号(; )时,其后直到终了作为注释处理。在注释栏里可以
书写任何字符。
LABEL泛指标号, 标号最多不超过六个字符,开头必须是英文大写字母,以后
可为英文大写字母或数字。
用空白表示的栏里不得写入字符。
2. 伪指令
(1) [LABEL] START [LABEL]
表示程序的开头,即在程序的开始必须书写。
操作数栏中的标号是这个程序中定义的标号,它指出该程序的启动地址,在缺
省的情况下,程序从头开始执行。
标号栏中的标号可以作为其它的程序进入该程序的入口。
(2) END
表示程序的终止,在程序的末尾书写。
(3) [LABEL] DC 常数
用来指定和存储常数,常数分十进制常数、十六进制常数、地址常数和字符串
常数四种。
标号栏中的标号是代表被指定的十进制常数、十六进制常数、地址常数的存储
地址或代表被指定的字符串常数的存储区域的第一字的地址。
十进制常数: DC n
用n指定一个十进制数(-32768≤n≤65535),并将n转换成二进制数存储在一个
字中。如果n超出规定的范围,则将其低16位存储起来。
对32768~65535的十进制数也可以用负的十进制常数表示。
十六进制常数: DC #h
用h指定一个4位十六进制数(0000≤h≤FFFF),并将h对应的二进制数存储在一
个字中(在h的前面必需写上#)。
地址常数: DC LABEL
将标号LABEL所对应的地址作为一个字的二进制数存储。若LABEL在程序中没有
定义,汇编将保留地址的定义,并由操作系统处理。
字符串常数: DC '字符串'
将字符串从左开始的每个字符转换成字符数据(参阅上节3) ,并依次把字符数
据存储在连续的各字中。
(4) [LABEL] DS 区域的字数
用来保留指定的字数的存储区域。
区域用字数,用十进制常数(≥0)指定。
标号栏中的标号是代表被保留的存储区域的第一个字的地址。
区域的字数为0时, 存储区域不存在,但是标号中的标号仍有效,即代表下一
字的地址。
3. 宏指令
宏指令是根据事先定义的指令串和操作的信息,生成指令功能的指令串。
CASL中有进行输入、输出及结束程序等宏指令,而没有定义输入、输出符号指
令、这类处理由操作系统完成。
程序中出现宏指令时,CASL生成调用操着系统的指令串,但是,生成的指令串
的字数不定。
执行宏指令时,GR的内容保持不变而FR的内容不确定。
(1) [LABEL] IN ALABEL,NLABEL
宏指令IN,从输入装置上输入一个记录,记录中的信息(字符)依次按字符数据
的形式被顺序存放在标号为ALABEL开始的区域内,已输入的字符个数以二进制数存
放在标号为NLABEL的字中。记录之间的分隔符号不输入。
(2) [LABEL] OUT ALABEL NLABEL
宏指令OUT, 将存放在从标号ALABEL开始的区域中的字符数据,作为一个记录
向输出装置输出,输出的字符个数由标号为NLABEL的字中的内容指定。输出时,若
要记录间的间隔符号,由操作系统自动插入输出。
(3) [LABEL] EXIT
宏指令EXIT,表示程序执行终止,控制返回操着系统。
4. 符号指令 参阅上节7。
5. 指令字、区域的相对位置
由汇编生成的指令字和区域的相对位置按汇编语言程序的书写顺序确定,并且
生成的指令字、区域占有的主存的连续区域。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -