当前位置: 网学 > 编程文档 > 汇编语言 > 正文

Casl汇编语言辅导:三、试题解释

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/18
下载{$ArticleTitle}原创论文样式
解]
寄存器作用:
GR1:源字符串地址指针,调用该子程序时,存放源字符串首地址。
GR2:目标字符串地址指针,调用该子程序时,存放目标字符串首地址。
GR3:用作处理汉字子字符串的识别标志。0 表示 ASCII 码(初始值),1 表示汉字。
GR0:工作寄存器,存放待处理的字符。(从第 7 行 "CPA  GR0,MARK0" 看出)
分析:
1)从第 7 行 " CPA  GR0,MARK0" 看出,GR0 中存放待处理的字符。所以第 6 行(__(1)__)必定是一条取数指令:"LD  GR0,0,GR1" ,即把源字符串地址指针所指的字符取到 GR0 中。
2)从第7 行及第 8 行可知,第 9 行到第 17 行是处理碰到“~”的情况,即判断后一字符是否是“~”、“{ ”及“}”。若都不是,则出错。
3)从第11 行可知,要判断是否连续两个“~”情况,而后面是继续比较,所以第 12 行(__(2)__)应该是一条“JZE”指令,而且是转移到 GOON ,即把“~”存放到目标字符串中。
4)第 13 行“CPA GR0,MARK1,GR3”应该是比较“{ ”及“}”:在中文状态比较“}”(结束),在西文状态比较“{ ”(开始)。所以这里用的是变址寻址,即由 GR3 的值是 0 或 1,决定是比较“{ ”还是“}”。
5)第 12 行(__(3)__)应该是改变汉字子字符串的识别标志 GR3 的指令,即原来是 0 的变成 1,原来是 1 的变成 0,异或指令可以达到此目的。将 GR3 与常数 1 相异或,因 Casl 没有没有立即数运算指令,只能和常数 V1 异或:EOR GR3,V1
6)第 20 行(__(4)__)是 GR0 中存放的字符送到目标字符串前的处理工作:若是西文状态( GR3 的值是 0 ),保持原样;若是中文状态( GR3 的值是 1 ),字节最高位置 1,复原为汉字子字符串,将GR0 的内容与十六进制数 0080 相或,即能达到目的。所以这条指令应是:OR GR0,V0,GR3 。
7)第 24 行将 GR0 与 0 比较,是判断字符串结束标志 0 。若非 0(未结束),继续处理。故第 25 行(__(5)__)应是一条条件转移指令:JNZ LOOP 。

2、2000年试题四

[程序说明]

(1)本子程序根据每位职工的基本工资(非负值)和他完成产品的超额数或不足数计算该职工的应发工资。

(2)主程序调用时,GR1中给出子程序所需参数的起始地址,参数的存放次序如下表:

GR1

a1
  b1
  c1
  a2
  b2
  c2
 
  an
  bn
  cn
  -1(结束标志)

 其中 ai 为职工 i 的基本工资;bi 为职工 i 的完成产品的超额数或不足数;ci为职工 i 的应发工资数(i = 1、2、…、n)。

bi以原码形式存放(大于零为超额,小于零为不足),基本工资与计算所得的应发工资以补码形式存放。

(3)应发工资的计算规则为:

●恰好完成定额数(此时bi = 0),应发工资即为基本工资。

●每超额 4 件,在基本工资基础上增加 10 元(不到 4 件,以 4 计算,例如超额数为 10 时,增加 30 元)。

●每不足 4 件,在基本工资基础上减 5 元(不到 4 件,以 4 计算,例如不足数为 5 时,减 10元)。

[程序]

  START   1

BEG 

PUSH 0,GR1 2
  PUSH 0,GR2 3
  PUSH 0,GR3 4
L1  __(1)__   5
  LEA  GR0,0,GR2 6
  JMI FINISH 7
  LD GR3,1,GR1 8
  LEA  GR2,0,GR3 9
  AND GR2,C7FFF 10
  JZE L3 11
  SRL GR3,15 12
  LEA GR2,-1,GR2 13
L2 __(2)__   14
  LEA GR2,-4,GR2 15
  JPZ L2 16
L3 __(3)__   17
  __(4)__   18
  __(5)__   19
FINISH POP GR3 20
  POP GR2 21
  POP GR1 22
  RET   23
C7FFF DC #7FFF 24
BONUS DC 10 25
  DC -5 26
  END   27


[

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号