
常用软件类: |
|杀毒安全 | |联络聊天 | |网络软件 | |多媒体类 | |系统工具 | |图形图像 | |系统工具 | |应用软件 | |行业软件 |
开发设计类: |
|动画制作 | |图像处理 | |3D设计 | |操作系统 | |站长学院 | |网络相关 | |WEB设计 | |数据库类 | |程序开发 |
8)取有效地址指令LEA:E→寄存器
LEA GR,ADR[,XR]
该指令有几个特殊用途:
【例1】LEA GR0,41H 把立即数 41H 送给 GR0
【例2】LEA GR0,0,GR1 把寄存器 GR1 的内容送给 GR0
【例3】LEA GR1,1,GR1 寄存器 GR1 的内容加 1(相当于 8086 汇编中的 INC 指令)
9)无条件转移指令JMP与条件转移指令JPZ(不小于转)、JMI(小于转)、JNZ(不等于转)、JZE(等于转)
●当地址码中缺 [XR] 时,所有转移指令为直接转移( ADR 即为转移地址)
当地址码中有 [XR] 时,所有转移指令为间接相对接转移
●JPZ 与 JMI 根据符号位 FR0 作为判断条件
JNZ 与 JZE 根据零位位 FR1 作为判断条件
10)进栈 PUSH 与出栈 POP:
(1)进栈指令 PUSH:
(SP)-1→SP,E→(SP)
(2)出栈指令 POP:
((SP))→GR,(SP)+1→SP
注意:出栈指令的目的寄存器是 GR0~GR4,而进栈指令的源操作数不包括 GR0。
11)子程序调用CALL与返回 RET指令
4、伪指令
1)START:程序开始
2)END:程序结尾
3)常量定义指令 DC:
此伪指令与其它汇编语言中的 DB 指令似。利用 DC 指令可定义:
(1)定义十进制常数:
其中 -32768 < n ≤65535
(2)定义字符串常数:
(3)定义十六进制常数:
其中 0000 ≤ h ≤FFFF
(4)定义地址:
其中 LABLE 是程序中的地址标号
因为 Casl 没有立即数运算指令,所以需要与立即数进行算术逻辑运算时,都要将立即数定义为内存常数进行运算。
4)变量定义指令 DS:用来保留指定字数的存储区域
其中 n 是十进制常数(≥0),当 n=0 时,存储区域不存在,但标号 LABLE 仍然有效,即代表下一字的地址。
5)宏指令:IN、OUT、EX99v
Casl 中有进行输入、输出及结束程序等宏指令,而没有定义输入、输出符号指令,这类处理由操作系统完成。
程序中出现宏指令时,Casl 生成调用操作系统的指令串,但是,生成的指令串字数不定。
执行宏指令时,GR 的内容保持不变,而 FR 的内容不确定。
(1)输入宏指令 IN:
宏指令 IN 从输入装置上输入一个记录,纪录中的信息(字符)依次按字符数据的形式存放在标号为 ALABLE 开始的区域内,已输入的字符个数以二进制数形式存放在标号为 NLABLE 的字中,纪录之间的分隔符号不输入。
(2)输入宏指令 OUT:
宏指令 OUT 将存放在标号为 ALABLE 开始的区域中的字符数据作为一个记录向输出装置输出,输出的字符个数由标号为 NLABLE 的字的内容指定。输出时,若要纪录间的分隔符号,由操作系统自动插入输出。
(3)宏指令 EX99v :
宏指令 EX99v 表示程序执行的终止,控制返回操作系统。