高程之CASL专题,以99下午第4题为例

文飞扬 2003-08-30 09:13:58
START
BEG PUSH 0,GR2
PUSH 0,GR3
LEA GR3,1
(1)
L1 SLL GR2,1
(2)
LEA GR3,1,GR3
L2 JZE L3
JMP L1
L3 (3)
ST GR3,WORK
ADD GR1,WORK
POP GR3
POP GR2
RET
WORK DS 1
END
答案为:
1。LEA GR2,0,GR1
2。FPZ L2
3。SLL GR3,15
问题:
1。第二行和三行的压栈语句有什么作用?
2。(GR2)=4与GR2=4有何区别?
3。第一空表示将GR1的内容送到GR2,结果为(GR2)=1还是GR2=1,我觉得应该是
LD GR2,0,GR1。
请高手指点。

...全文
56 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
文飞扬 2003-09-01
  • 打赏
  • 举报
回复
to smuwcwt:
(GR1)=>(0+(GR2))
将GR1中的内容送入GR2所指的地址。
smuwcwt 2003-09-01
  • 打赏
  • 举报
回复
那ST GR1,0,GR2又是怎么保存数值的呢?请高手指教。
smuwcwt 2003-08-30
  • 打赏
  • 举报
回复
学习学习
cloudinwind 2003-08-30
  • 打赏
  • 举报
回复
这是一个子函数,肯定要用压栈了,(GR2)是GR2的地址。
bobble 2003-08-30
  • 打赏
  • 举报
回复


果然是高手,不同凡响!
谢了!
pldchild 2003-08-30
  • 打赏
  • 举报
回复
关于(GR1)和GR1问题是个习惯写法问题。如LEA GR2,0,GR1是把GR1的内容赋给GR2,一般写成(GR1)=>GR2。这样LD GR2,0,GR1(把GR1所指的内存单元的内容赋给GR2)就应写成((GR1))=>GR2。
但有时为了省事,也有写成GR1=>GR2和(GR1)=>GR2。
不管用那一种习惯写法。自己头脑中的概念要清楚。
pldchild 2003-08-30
  • 打赏
  • 举报
回复
关于(GR2)=4和GR2=4问题是个习惯写法问题。如LEA GR2,0,GR1是把GR1的内容赋给GR2,一般写成(GR1)=>GR2。这样LD GR2,0,GR1(把GR1所指的内存单元的内容赋给GR2)就应写成((GR1))=>GR2。
但有时为了省事,也有写成GR1=>GR2和(GR1)=>GR2。
不管用那一种习惯写法。自己头脑中的概念要清楚。
bobble 2003-08-30
  • 打赏
  • 举报
回复
我是这样想的,不知道对不对,请高手指正:

1)压栈作用:本程序要用到GR2和GR3,但GR2和GR3中的内容在此程序运行完还有用,用堆栈将其 保存下来,此程序运行完还需恢复其内容;
2)(GR2)=4是将立即数4赋给GR2所指的内存区,GR2=4操作是将立即数送到寄存器GR2
3)LEA GR2,0,GR1 是对的,此操作结果:E->GR2;若是LD GR2,0,GR1,则结果为:(E)->GR2
孰是孰非,不言自明矣.
CASL引入国内以后作为中国计算机软件专业技术资格和水平考试高级程序员级考试内容之一。使用虚拟的计算机目的为的是一个公平的考试环境,毕竟如果让每天和MC680X0打交道的朋友去和写PC驱动的朋友一起考i80X86汇编显然是不公平的。 CASL达到这一目的的同时却带来了一个麻烦:CASL程序无法在常见的PC或者其他任何计算机上运行。 我们有三条常见选择: 1)汇编器,将Casl汇编程序汇编成诸如80X86指令的程序,在PC上运行 2)解释器,解释执行每一条指令,有点像解释型高级语言,但是来的简单一些 3)忘记CASL,忘记高程考试 ;;;;-) 在选择了第二种方案以后我们开始了这个软件...... Nasl的设计主要目标便是简单易用,事实上在我能找到的所有CASL解释器中没有一个能很快上手运行起来的,当然这不包括Nasl本身。由于Comet是一个虚拟计算机,诸如复旦大学计算机科学系所设计的CASL汇编器的设计只能给使用者带来不必要的麻烦。鉴于它只能在Pure DOS下运行,Nasl诞生了,编写一个开放的人人可以得到的方便的CASL解释器是编写Nasl的初衷之一。 Nasl能对输入的CASL汇编程序解释运行,以此可以观察各个寄存器以及内存的变化情况,使得您可以熟悉CASL汇编并对汇编语言程序设计的思想有所了解,帮助通过高程考试。Nasl支持CASL汇编文件的编辑,但是请不要将它视作一个";;;开发环境";;;,CASL和Nasl都不值得您去那么做。 最后祝所有努力学习的朋友好运!

2,947

社区成员

发帖
与我相关
我的任务
社区描述
就计算机等级考试、软件初、中、高级不同级别资格考试相关话题交流经验,共享资源。
c1认证c4javac4前端 技术论坛(原bbs)
社区管理员
  • 软件水平考试社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧