您好,欢迎光临本网站![请登录][注册会员]  
文件名称: CASL汇编仿真程序
  所属分类: 软考等考
  开发工具:
  文件大小: 42kb
  下载次数: 0
  上传时间: 2011-05-30
  提 供 者: fjg***
 详细说明: 《CASL汇编仿真系统》说明 本软件是为在x86系列微机和32位Windows操作系统环境中仿真Comet计算机(一种虚拟计算机)上的汇编语言CASL而编写的。 CASL汇编语言简洁实用,属于RISC指令系统——精简指令系统计算机(x86系列微机属于CISC——复杂指令系统计算机),是当今许多大学教授《汇编语言程序设计》的首选语言之一。但《汇编语言程序设计》课程的实践性很强,因此本软件是《CASL汇编语言程序设计》教学必不可少的软件。 软件采用Visual Basic 6.0开发,实现了《CASL汇编语言文本》的全部功能(见附件)。 软件基本使用方法如下: 1)使用“打开”菜单可打开扩展名为“.CAS”的CASL汇编源程序文件,或者使用“新建”菜单建立新的CASL汇编源程序文件。 2)按“运行”按钮进入运行窗口,可以完成“运行”、“单步”等功能,并获得运行结果。按“编辑窗口”按钮返回主窗口。 青岛港湾学院 费建刚 2005.12. 附件: CASL汇编语言文本 一、 处理机COMET说明 1.COMET是一台字长为16位的定点计算机。主存储器的容量是65536字,按编号0000~FFFF(十六进制)编址。 2.一个字的16位二进位采用 自左至右的次序编号,即 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 3.一个字的16可以是:  不带符号的二进制非负整数。此时一个字能表示的数的范围是: 0 ≤ X ≤ 65535  用补码表示的带符号的二进制整数,此时一个字能表示的数的范围是: -32768 ≤ X ≤ 32767  地址常数。此时一个字能表示的地址写成十六进制时是: 0000 ~ FFFF  字符数据。此时一个字的高8位皆应为零,低8位为字符的ASCII编码,即: 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 4.COMET具有5个通用寄存器GR(16位),一个指令计数器PC(16位)和一个标志寄存器FR(2位)。它们的作用是:  GR(通用寄存器)。5个通用寄存器的编号为0、1、2、3、4,分别记为GR0、GR1、GR2、GR3、GR4。这些通用寄存器用于算术、逻辑、比较、移位等运算,其中GR1、GR2、GR3、GR4通用寄存器还兼作变址寄存器。另外,GR4还兼作栈指针(SP)用,栈指针是存放栈顶地址用的寄存器。  PC(指令计数器)。在执行指令的过程中,PC中存放着正在执行的指令的第一个地址(一条指令占二个字)。当指令执行结束时,置入下一条将要被执行的指令的第一个字的地址。也就是说,在指令执行结束时,一般是把PC的内容加2,只有在执行转移指令且转移条件成立时,才将转移地置入PC中。  FR(标志寄存器)。在ADD、SUB、AND、OR、EOR、CPA、CPL、SLA、SRA、SLL、SRL、LEA等指令执行结束时,根据执行结果,将FR置成00、01、10。它不会因其它指令的执行而改变。 5.COMET的控制方式为顺序控制。指令由32位二进位构成。即双字长,其构成没有定义。 6.指令的符号表示:  GR泛指通用寄存器。可用数字0、1、2、3、4来指定,也可以用GR0、GR1、GR2、GR3、GR4来指定。  XR泛指变址寄存器。可用数字1、2、3、4来指定,也可以用GR1、GR2、GR3、GR4来指定。  SP栈指针(第4号通用寄存器)。  ADR标号(表示与标号对应的地址),为10进制数(-32768≤ADR≤65535;ADR作为地址,具有0~65535的值,而32768~65535的值也可以用负的10进制常数表示)。  (X)表示地址中的内容,如果X是通用寄存器时表示通用寄存器中的内容。  E表示有效地址。形成有效地址E的规则是: E = ADR [ + (XR) ] ( mod 65536) [ ]表示被[ ]包围的部分可以省略(以下同),XR省略时,表示不使用变址寄存器。 7.COMET有23种指令。指令的名称、书写格式及其功能见附表1。 指令的书写格式用汇编语句的形式给出。 附表1 名称 书 写 格 式 功能 指令码 操作数 取数 LD GR,ADR[,XR] (E)=>GR 存数 ST GR,ADR[,XR] (GR)=>E 取地址* LEA GR,ADR[,XR] E=>GR 加法* ADD GR,ADR[,XR] (GR)+(E)=>GR 减法* SUB GR,ADR[,XR] (GR)-(E)=>GR 逻辑乘* AND GR,ADR[,XR] (GR)∧(E)=>GR 逻辑加* OR GR,ADR[,XR] (GR)∨(E)=>GR 按位加* EOR GR,ADR[,XR] (GR)异或(E)=>GR 算术比较 CPA GR,ADR[,XR] 视(GR)和(E)为用补码表示的带符号的二进制整数。 若(GR)>(E) 则00=>FR 若(GR)=(E) 则01=>FR 若(GR)<(E)则10=>FR 逻辑比较 CPL GR,ADR[,XR] 视(GR)和(E)为无符号的二进制非负整数。 若(GR)>(E)则00=>FR 若(GR)=(E)则01=>FR 若(GR)<(E)则10=>FR 算术左移* SLA GR,ADR[,XR] 把(GR)向左或向右移动E位。在算术移位时,GR中的第0位保持不变。在右移时空出的位被置成与第0位相同的1或0;在左移时空出的位被置成0。在逻辑移位时,GR中的16位一起移动,而空出的位被置成0。 算术右移* SRA GR,ADR[,XR] 逻辑左移* SLL GR,ADR[,XR] 逻辑右移* SRL GR,ADR[,XR] 无条件转 JMP ADR[,XR] 无条件向有效地址E转移,即E=>PC 大于等于转 JPZ ADR[,XR] 根据FR的值向有效地址E转移,即E=>PC;不转移时执行下一条指令,即(PC)+2=>PC(注)。 小于转 JMI ADR[,XR] 不等转 JNZ ADR[,XR] 等于转 JZE ADR[,XR] 进栈 PUSH ADR[,XR] (SP)-1=>SP,E=>(SP) 退栈 POP GR ((SP))=>GR,(SP)+1=>SP 调用 CALL ADR[,XR] 先形成有效地址E,再依次执行 (SP)-1=>SP (PC)+2=>(SP) E=>PC 返回 RET ((SP))=>PC, (SP)+1=>SP 这些指令还根据执行结果(GR中的值),形成FR的值。其规则是:  若GR中的第0位为0且其余各位不全为0,则FR被置成00;  若GR中的16位全为0,则FR被置成01;  若GR中的第0位为1,则FR被置成10; 注: 指令 转移时FR的值 JPZ 00或01 JMI 10 JNZ 00或10 JZE 01 二、汇编语言CASL说明 COMET的汇编语言是CASL,其语法规则说明如下: 1. 指令的种类和书写格式 CASL由4种伪指令(START,END,DS,DC)、3种宏指令(IN,OUT,EXIT)和23种符号指令(COMET的指令)组成。CASL的每条指令书写在一行内(最多不超过72个字符),它的书写格式如附表2所示。 标号 指令码 操作数 注释 [LABEL] START [LABEL] END [LABEL] DC 常数 [LABEL] DS 区域的字数 [LABEL] IN ALABEL,NLABEL [LABEL] OUT ALABEL,NLABEL [LABEL] EXIT [LABEL] 符号指令见附表1 由附表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.指令字、区域的相对位置 由汇编生成的指令字和区域的相对位置按汇编语言程序的书写顺序确定,并且生成的指令字、区域占有的主存的连续区域。 ...展开收缩
(系统自动生成,下载前可以参看下载内容)

下载文件列表

相关说明

  • 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
  • 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度
  • 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
  • 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
  • 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
  • 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.
 相关搜索: CASL 汇编 程序员考试
 输入关键字,在本站1000多万海量源码库中尽情搜索: