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

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

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/18
下载{$ArticleTitle}原创论文样式
解]

1)第2~8行(L2以前)是初始化程序,其中第2~6行是把计数器存放单元NCH开始的十个单元清零。地址指针是GR2(递减),故((1))为:ST GR0,NCH,GR2

2)从第 8、9 行看出 GR1 是地址指针(相对于 STR)。GR2是工作单元(要处理的字符)

3)因一个字放两个字符,故GR3用作高低字节标志。起始值为0,先处理高字节,第10行指令"EOR GR4,C1"一方面判断是否第一次(结果非0),并将GR4置1。

第一次处理高字节,用逻辑右移指令将高8位内容移到低8位(高8位置0)。

第二次处理低字节,用先逻辑左移再逻辑右移指令将高8位内容置0,故(2)为:

SLL GR2,8

4)在处理过程又用 GR3 作临时工作单元,即把GR2内容送给GR3再处理。处理时先判是否>"9"(不计数)。然后减以 "0" ,使 GR3 变成 0~9。

5)计数处理是在第 21、22、23 三行中完成。使 NCH 开始的 10 个单元中与 GR3 对应的那个单元加1。因加法指令的目的操作数只能是寄存器,所以先给 GR2 送 1(第 21 行),再将 NCH 对应单元内容加到GR2 中,再将 GR2 内容送回 NCH 对应单元(采用 GR3 变址寻址)。故34为:"ADD GR2,NCH,GR3"及"ST GR2,NCH,GR3"。

6)在一个字的第二次处理后(用第 24、25 行判断),要修改字符串的地址指针 GR1(加1)。故    (5为:"LEA GR1,1,GR1"。

5、1997年试题四

[程序说明]

本子程序将一个非负二进整数翻译成五位十进整数字符。

进入子程序时,在 GR0 中给出被翻译的非负二进整数,在 GR2 中给出存放五位十进整数数字字符的起始地址。

十进制数字字符用 ASCII 码表示。当结果小于五位时,左边用空白符替换;当二进整数为零时,在(GR2)+4 中存放 0 的 ASCII 码。

数字字符 0 至 9 的 ASCII 码是 48 至 57,空白符的 ASCII 码是 32。
[程序]

  START   1
  LEA GR1,0 2
  LEA GR3,32 3
L1 ____(1)____   4
  JPZ L2 5
  ST GR3,0,GR2 6
  LEA GR2,1,GR2 7
  LEA GR1,1,GR1 8
  LEA GR4,-4,GR1 9
  JNZ L1 10
L2 ___(2)___   11
L3 ___(3)___   12
  JMI L4 13
  SUB GR0,SNO,GR1 14
  LEA GR3,1,GR3 15
  ___(4)___   16
L4 ST GR3,0,GR2 17
  LEA GR2,1,GR2 18
  LEA GR1,1,GR1 19
  ___(5)___   20
  JNZ L2 21
  RET   22
SNO DC 10000 23
  DC 1000 24
  DC 100 25
  DC 10 26
  DC 1 27
  END   28

&

网学推荐

免费论文

原创论文

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