Casl汇编语言辅导

一、Casl汇编语言语法介绍

学习一个汇编语言需要掌握3个要点:CPU 的可编程寄存器结构、寻址方式及指令系统、伪指令。

1、COMETCPU 的可编程寄存器 COMETCPU 字长 16 位,采用从左到右的编号。bit0 在最左边(最高位),bit15 在最右边(最低位)

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

1)16 位通用寄存器五个:

GR0、GR1、GR2、GR3、GR4

通用功能:各种算术逻辑运算

特殊功能:除 GR0 外都可作变址寄存器(地址指针)XR,GR0 可看成累加器。

GR4 兼作堆栈指针(SP)

2)指令计数器 PC 一个(16位)

存放正在执行的那条指令的第 1 个字的地址(一条指令占二个字),指令结束时,PC 中存放下一条指令的地址(一般为原指令地址 +2 )。

3)状态寄存器 FR 一个(二位)

运算结果 FR0 FR1
大于  0 0
等于 0 1
小于 1 0

可以把 FR0 看成 SF(符号位),FR1 看成 ZF(零位位)

除了算术逻辑运算指令(包括移位指令)外,LEA 指令也会影响 FR

2、符号指令写法与寻址方式

OP GR,ADR[,XR]

其中 OP 为操作码;GR 为五个通用寄存器 GR0~GR4 之一;ADR 为一个 16 位的地址码;XR 为四个变址寄存器 GR1~GR4 之一,[ ]表示可以省略。

1)直接寻址:当 [,XR] 省略时,为直接寻址。

2)变址寻址:有效地址 E = ADR +(XR),当 ADR = 0 时,为寄存器间接寻址。

3)立即数寻址:Casl 没有立即数寻址。但在 LEA 指令中,当 [,XR] 省略时,可作立即数传送。没有立即数运算指令。

4)寄存器寻址:Casl 也没有寄存器寻址(对源操作数)。但 LEA 指令当 ADR = 0 时,可作寄存器寻址(只用于数据传送)。

3、Casl指令系统

1)取数指令 LD:内存→寄存器

LD GR,ADR[,XR]

2)存数指令 ST:寄存器→内存

ST GR,ADR[,XR]

3)加法 ADD、减法 SUB、逻辑与 AND、逻辑或OR、逻辑异或 EOR指令:

ADD
SUB
AND GR,ADR[,XR]
OR
EOR

内存 OP 寄存器→寄存器

4)算术比较 CPA:

两个带符号数比较,结果不回送,只影响标志位。

CPA GR,ADR[,XR]

时间: 2024-12-24 05:06:19

Casl汇编语言辅导的相关文章

程序设计考试大纲(高级程序员级)

一.考试说明 1.考试要求: (1)熟练掌握面向对象编程技术,用C/C++语言熟练编制程序: (2)了解CASL汇编语言的程序编制: (3)掌握软件设计的方法和技术: (4)掌握数据结构.程序语言.操作系统.数据库和软件工程的基础知识: (5)了解多媒体和网络的基础知识: (6)掌握计算机体系结构和主要部件的基础知识. 2.通过本级水平考试的合格人员能按照软件需求规格说明书进行软件设计和编制程序,具有相当于工程师的实际工作能力和业务水平. 3.本级水平考试范围包括两个模块: 模块1--软件设计和

高级程序员考试时间安排和参考书推荐

文章来源于网络,参考以下! 高级程序员考试(以下简称高程考试)是计算机软件资格与水平考试中难度比较大的一级,也是许多在校大学生热衷参与的一项考试.下面是笔者参加高程考试的一点体会,希望对那些正在准备高程考试的朋友有所帮助. 复习时间安排 高程考试分上午考试和下午考试,上午考基础知识, 考试时间为150分钟:下午考软件设计和程序编制能力,考试时间也为150分钟. 要想顺利通过高级程序员考试,那么就应该有一个完备的复习计划.报考高级程序员考试应该尽早准备,把工夫下在平时,尤其是像程序设计语言和汇编语

X86汇编语言总结

下载地址:点击打开下载链接 AX.BX.CX.DX一般用来存放数据 [BX].[BP].[SI].[DI]中一般存放着某个段寄存器的偏移地址,默认情况下,[BX]中存放着数据段(DS)的偏移地址,[BP]中存放着栈段(SS)的偏移地址(功能和SP类似),其中BX只能和SI.DI组合,BP只能和SI.DI组合,SI.DI间是不能组合的 Loop指令一般搭配着CX寄存器使用,每循环一次,CX寄存器中的值减少1 执行PUSH指令时,SP-2,执行POP时,SP+2 个人的一点总结:压栈时,先减后压:出

汇编语言loop使用,连续多个数相加

问题描述 汇编语言loop使用,连续多个数相加 汇编语言实验,使用loop实现连续多个数相加,求代码(字数怎么不够呢) 解决方案 用CX寄存器存循环的次数,用其他通用寄存器存要相加的数,循环做加法就行 解决方案二: 很简单的,你必须按照步骤来,不然很容易出错的, 解决方案三: Intel80x86系列汇编语言中的LOOP指令,是循环指令,循环次数由计数寄存器CX指定.是否执行循环体的判断指令在循环体之后,所以,至少执行1次循环体,即至少循环1次.执行LOOP指令时,CPU自动将CX的值减1,若C

学习编程-用汇编语言画图,汇编语言菜鸟求大家帮忙。感激不尽!

问题描述 用汇编语言画图,汇编语言菜鸟求大家帮忙.感激不尽! 作为初学汇编语言的菜鸟,想请教一下怎么用汇编语言画6*6的矩形呢? 解决方案 IP: 机器代码 在DEBUG中U命令反汇编后的源代码 0100 B80400 MOV AX00040103 CD10 INT 10 0105 B40B MOV AH0B 0107 BB0001 MOV BX0100010A CD10 INT 10 010C B40B MOV AH0B 010E BB0000 MOV BX00000111 CD10 INT

简明x86汇编语言教程(1)

第○章 写在前面 我不想夸大或者贬低汇编语言.但我想说,汇编语言改变了20世纪的历史.与前辈相比,我们这一代编程人员足够的幸福,因为我们有各式各样的编程语言,我们可以操作键盘.坐在显示器面前,甚至使用鼠标.语音识别.我们可以使用键盘.鼠标来驾驭"个人计算机",而不是和一群人共享一台使用笨重的继电器.开关去操作的巨型机.相比之下,我们的前辈不得不使用机器语言编写程序,他们甚至没有最简单的汇编程序来把助记符翻译成机器语言,而我们可以从上千种计算机语言中选择我们喜欢的一种,而汇编,虽然不是一

新手必看-汇编语言超浓缩教程

" 哎哟,哥们儿,还捣鼓汇编呢?那东西没用,兄弟用VB"钓"一个API就够你忙活个十天半月的,还不一定搞出来."此君之言倒也不虚,那吾等还有无必要研他一究呢?(废话,当然有啦!要不然你写这篇文章干嘛.)别急,别急,让我把这个中原委慢慢道来:一.所有电脑语言写出的程序运行时在内存中都以机器码方式存储,机器码可以被比较准确的翻译成汇编语言,这是因为汇编语言兼容性最好,故几乎所有跟踪.调试工具(包括WIN95/98下)都是以汇编示人的,如果阁下对CRACK颇感兴趣--:二

简明x86汇编语言教程(7)

5.0 编译优化概述 优化是一件非常重要的事情.作为一个程序设计者,你肯定希望自己的程序既小又快.DOS时代的许多书中都提到,"某某编译器能够生成非常紧凑的代码",换言之,编译器会为你把代码尽可能地缩减,如果你能够正确地使用它提供的功能的话.目前,Intel x86体系上流行的C/C++编译器,包括Intel C/C++ Compiler, GNU C/C++ Compiler,以及最新的Microsoft和Borland编译器,都能够提供非常紧凑的代码.正确地使用这些编译器,则可以得

汇编教程:汇编语言编程实例

汇编语言编程实例一这一章,我们要把我们已学的知识集合起来.具体来讲,我们来写一个使用ODBC APIs的程序.为简单起见,这个程序中我使用Microsoft的Access数据库(Microsoft Access 97) . 注意:如果你使用的windows.inc 是1.18及其以下版本,在开始编译之前要修改其中的一个小bug.在windows.inc中查找 "SQL_NULL_HANDLE",将得到下面这行: SQL_NULL_HANDLE equ 0L 将0后面的"L&q