WEB开发网
开发学院软件开发汇编语言 Casl汇编语言辅导 阅读

Casl汇编语言辅导

 2008-04-28 09:33:27 来源:WEB开发网   
核心提示:3、1999年试题四〖程序4.1〗[程序4.1说明]本子程序是对 15 位二进位串,求它的奇校验位,Casl汇编语言辅导(8),生成 16 位二进制位串,使 16 位二进制位串有奇数个 1,-1,GR36)((5))应把结果单元地址 B 赋给 GR3:LD GR3,进入此子程序时,15 位二进制位串在 GR1 的第 1

3、1999年试题四〖程序4.1〗

[程序4.1说明]

本子程序是对 15 位二进位串,求它的奇校验位,生成 16 位二进制位串,使 16 位二进制位串有奇数个 1。

进入此子程序时,15 位二进制位串在 GR1 的第 1 位至第 15 位,并假定 GR1 的第 0 位是 0,求得的奇校验位装配在 GR1 的第 0 位上。

[程序4.1]

START 1
BEG PUSH 0,GR2 2
PUSH 0,GR3 3
LEA GR3,1 4
__ (1) __ 5
L1 SLL GR2,1 6
__ (2) __ 7
LEA GR3,1,GR3 8
L2 JZE L3 9
JMP L1 10
L3 __ (3) __ 11
ST GR3,WORK 12
ADD GR1,WORK 13
POP GR3 14
POP GR2 15
RET 16
WORK DS 1 17
END 18

[分析]

1)从说明中已知,被转换的二进位串(一个字)放在 GR1 中。

2)第 6 行 "SLL GR2,1" 这条指令是处理奇偶校验用的,因此 GR2 也应该是工作单元,初始值为被处理数,故第 5 行(1)应该是 "LEA GR2,0,GR1"。

3)从第 4、5 行看,GR3 是一个计数器(统计值为 1 的位的个数),初始值为 1,即当 GR2 一个 1也没有时,其值为 1(奇校验)。

4)第 6 行 "SLL GR2,1" 将被处理数左移一位,需要判断最高位是否为 1,若是,计数器加 1,否则跳过这条指令。因最高位也是符号位,所以可用 "JPZ L2"(2)。

5)第 9 行(L2)"JZE L3"是移位结束条件,即移到结果为 0 时结束。

6)第 11、12、13 行,是在计数器值为奇数(即实际 1 的个数为偶数)时把被处理字 GR1 最高位变成 1。而计数器 GR3 为奇数即其最低位为 1,因此需把 GR3 的最低位变成最高位,所以第 11 行(3)应该是:SLL GR3,15

4、1999年试题四〖程序4.2〗

[程序4.2说明]

子程序 SUM 是将存贮字 A 起的 n(n>0) 个字求和,并将结果存于存贮字 B 中。

调用该子程序时,主程序在 GR1 中给出存放子程序所需参数的起始地址。参数的存放次序如下图:

(GR1)+0

A

+1

n

+2

B

START
SUM LD GR2,0,GR1
LD GR3,1,GR1
LEA GR0,0
L5 ADD GR0,0,GR2
LEA GR2,1,GR2
_ (4) _
JNZ L5
L3 __(5) 
ST GR0,0,GR3
RET
END

[分析]

1)GR1 为参数表起始地址

2)GR2 为数组地址指针,起始值为A

3)GR3 为计数器,初始值为数组长度 n。

4)GR0 为累加和工作单元

5)( (4) )应该是计数器减 1:LEA GR3,-1,GR3

6)( (5) )应把结果单元地址 B 赋给 GR3:LD GR3,2,GR1

上一页  3 4 5 6 7 8 9 10 11  下一页

Tags:Casl 汇编语言 辅导

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接