社区
软件水平考试
帖子详情
casl中LEA指令与LD指令的区别
huijiahao
2003-10-10 09:38:43
LEA GR0,1,GR1 LD GRO,1,GR1的作用不是相同的吗,都是把GR1中的内容加1送往GRO,请问各位大侠,LEA指令与LD指令有何不同
...全文
126
16
打赏
收藏
casl中LEA指令与LD指令的区别
LEA GR0,1,GR1 LD GRO,1,GR1的作用不是相同的吗,都是把GR1中的内容加1送往GRO,请问各位大侠,LEA指令与LD指令有何不同
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
16 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
慕容霜雪
2003-10-10
打赏
举报
回复
lea 可以有好多操作。可以传有效地址。可以实现自加自减。
ld 只能实现内容装载。没有别的用处。
lea gr1,0,gr1
ld gr1,0,gr1
要看gr1里是什么东西。如果地址的话那
lea
ld
就不一样。如果是数据。二者在内容上是没有区别的。但在背后操作上是有区别的。正如飞狼说的那样
warren248
2003-10-10
打赏
举报
回复
我是这样理解的:lea 一般直接取地址,ld一般是取内容(地址的值)。且lea会修改fr的值。
wwwsoftware
2003-10-10
打赏
举报
回复
非狼提到的执行LEA后 同时修改标志位(FR的值)很重要,
经常可以看到先执行LD语句,再执行LEA的,就是为了影
响标志位。很多时候利用这一特点,用LEA来修改循环变
量,然后进行判断后执行JPZ,JNE,JMI等跳转指令。
戒之在得
2003-10-10
打赏
举报
回复
清华的书我没看过,应该是书写的标准语法吧,在标准中lea是三位操作符吧?(有些记不清了)
RPhx
2003-10-10
打赏
举报
回复
push adr [grx];
功能:E=adr+(GRX);-1=》GR4;E=>((GR4))
如:(GR4)=200,(GR1)=300
PUSH 10,GR1
执行后:
(GR4)=199;
(199)=310;
wwwsoftware
2003-10-10
打赏
举报
回复
回复znwang3(牛牛) 的问题
(1)你前面对LEA及LD的用法描述是对的
(2)原文:
清华出的那本教程同步辅导,第467面上面有三行(GR1与GR2的内容互换):
LEA GR3, 0, GR2 ;(GR2) -> GR3
LEA GR2, 0, GR1 ;(GR1) -> GR2
LEA GR1, 0, GR3 ;(GR3) -> GR1, 即(GR2) -> GR1
中间为什么要加个 “0”呀,把0去掉不行吗?
回复:LEA的语法是 LEA GR,ADR[,(XR)] ,可以看出,必须输入ADR值,此时
又不想变换所获得的值,所以必须设置ADR为0,否则语法出错。
(3)原文:
书的第474面,有两个进栈操作:
PUSH 0, GR1
PUSH 0, GR2
这里的“0”又是用来做什么的。
回复:道理同上,PUSH的语法是PUSH GR,ADR[,(XR)] ,必须输入ADR值。当ADR为0时,
可以起到把GR1或GR2的内容压入堆栈。如ADR不为0,压入堆栈的就不会是GR1或GR2的内容了。
janswl
2003-10-10
打赏
举报
回复
LD GRI,adr[,GRK]
(adr + (GRK)) -> GRI
将所指内存的内容装入到寄存器中
LEA GRI,adr[,GRK]
adr + (GRK) -> GRI
将有效地址装入寄存器中并产生标志位(FR的值)
戒之在得
2003-10-10
打赏
举报
回复
是我写错了,呵呵,ld是把地址gr1加1中的数值赋给gr0
envoyofdis
2003-10-10
打赏
举报
回复
不对,
我觉得是
lea是把 gr1的值加1直接赋值给gr0,ld是把gr1指向地址的下一个地址中的数值赋给gr0
wwwsoftware
2003-10-10
打赏
举报
回复
修改一下,刚才把“则执行 LEA GR0,1,GR1后,GR0的值为1001H”输成
“则执行 LEA GR0,1,GR1后,GR1的值为1001H”
LEA GRO,1,GR1 是把 GR1中的值加1直接赋值给GR0,可以实现数值自加自减等功能;
如开始时间GR1的取值为1000H,则执行 LEA GR0,1,GR1后,GR0的值为1001H;
LD GRO,1,GR1 是把 GR1中的值加1作为地址,再把该地址中的值赋给GRO。一般开始
时GR1是指向某个需要进行处理的数据区的首地址,通过加1后实现下一个地址
的取值。如开始时GR1中的值为1000H,则执行 LD GR0,1,GR1后,GR0的值为
地址1001H中的值,而不是1001H。
wwwsoftware
2003-10-10
打赏
举报
回复
LEA GRO,1,GR1 是把 GR1中的值加1直接赋值给GR0,可以实现数值自加自减等功能;
如开始时间GR1的取值为1000H,则执行 LEA GRO,1,GR1后,GR1的值为1001H;
LD GRO,1,GR1 是把 GR1中的值加1作为地址,再把该地址中的值赋给GRO。一般开始
时GR1是指向某个需要进行处理的数据区的首地址,通过加1后实现下一个地址
的取值。如开始时GR1中的值为1000H,则执行 LD GR0,1,GR1后,GR0的值为
地址1001H中的值,而不是1001H。
znwang3
2003-10-10
打赏
举报
回复
再问:
LEA GR0, 1, GR1 ; 是不是:1+(GR1)->GR0 ,我想是的
但是:
LD GR0, 1, GR1 ;是 1+(GR1)->GR0 , 还是 ( 1+(GR1))->GR0 呢?应该是后者!
清华出的那本教程同步辅导,第467面上面有三行(GR1与GR2的内容互换):
LEA GR3, 0, GR2 ;(GR2) -> GR3
LEA GR2, 0, GR1 ;(GR1) -> GR2
LEA GR1, 0, GR3 ;(GR3) -> GR1, 即(GR2) -> GR1
中间为什么要加个 “0”呀,把0去掉不行吗?
书的第474面,有两个进栈操作:
PUSH 0, GR1
PUSH 0, GR2
这里的“0”又是用来做什么的。
znwang3
2003-10-10
打赏
举报
回复
我也不太懂,期待高手作答!
戒之在得
2003-10-10
打赏
举报
回复
不对,lea是把 gr1的值加1直接赋值给gr0,ld是把地址gr1中的数值加1赋给gr0
yhcyzc
2003-10-10
打赏
举报
回复
LEA 操作的寄存器中的内容
LD 操作的是内存单元的内容!! [1+(GR1)]->GR0
znwang3
2003-10-10
打赏
举报
回复
看了各位的讲解,真是既简单明了有很直观,真心谢谢各位!
cas
l汇编语言模拟器
《
CAS
L汇编模拟系统》说明 本软件是为在x86系列微机和32位Windows操作系统环境
中
模拟运行Comet计算机(一种虚拟计算机)上的汇编语言
CAS
L而编写的。
CAS
L汇编语言简洁实用,属于RISC
指令
系统——精简
指令
系统计算机(x86系列微机属于CISC——复杂
指令
系统计算机),是当今许多大学教授《汇编语言程序设计》的首选语言之一。但《汇编语言程序设计》课程的实践性很强,因此本软件是《
CAS
L汇编语言程序设计》教学必不可少的软件。
CAS
L汇编
《
CAS
L汇编仿真系统》说明
本软件是为在x86系列微机和32位Windows操作系统环境
中
仿真Comet计算机(一种虚拟计算机)上的汇编语言
CAS
L而编写的。
CAS
L汇编语言简洁实用,属于RISC
指令
系统——精简
指令
系统计算机(x86系列微机属于CISC——复杂
指令
系统计算机),是当今许多大学教授《汇编语言程序设计》的首选语言之一。但《汇编语言程序设计》课程的实践性很强,因此本软件是《
CAS
L汇编语言程序设计》教学必不可少的软件。
软件采用Visual Basic 6.0开发,实现了《
CAS
L汇编语言文本》的全部功能(见附件)。
软件基本使用方法如下:
1)使用“打开”菜单可打开扩展名为“.
CAS
”的
CAS
L汇编源程序文件,或者使用“新建”菜单建立新的
CAS
L汇编源程序文件。
2)按“运行”按钮进入运行窗口,可以完成“运行”、“单步”等功能,并获得运行结果。按“编辑窗口”按钮返回主窗口。
需要源代码者请与作者联系: f_j_g@163.com
Jungle Free
2007.9.
Cas
l汇编语言解释运行环境Nasl
CAS
L引入国内以后作为
中
国计算机软件专业技术资格和水平考试高级程序员级考试内容之一。使用虚拟的计算机目的为的是一个公平的考试环境,毕竟如果让每天和MC680X0打交道的朋友去和写PC驱动的朋友一起考i80X86汇编显然是不公平的。
CAS
L达到这一目的的同时却带来了一个麻烦:
CAS
L程序无法在常见的PC或者其他任何计算机上运行。 我们有三条常见选择: 1)汇编器,将
Cas
l汇编程序汇编成诸如80X86
指令
的程序,在PC上运行 2)解释器,解释执行每一条
指令
,有点像解释型高级语言,但是来的简单一些 3)忘记
CAS
L,忘记高程考试 ;;;;-) 在选择了第二种方案以后我们开始了这个软件...... Nasl的设计主要目标便是简单易用,事实上在我能找到的所有
CAS
L解释器
中
没有一个能很快上手运行起来的,当然这不包括Nasl本身。由于Comet是一个虚拟计算机,诸如复旦大学计算机科学系所设计的
CAS
L汇编器的设计只能给使用者带来不必要的麻烦。鉴于它只能在Pure DOS下运行,Nasl诞生了,编写一个开放的人人可以得到的方便的
CAS
L解释器是编写Nasl的初衷之一。 Nasl能对输入的
CAS
L汇编程序解释运行,以此可以观察各个寄存器以及内存的变化情况,使得您可以熟悉
CAS
L汇编并对汇编语言程序设计的思想有所了解,帮助通过高程考试。Nasl支持
CAS
L汇编文件的编辑,但是请不要将它视作一个";;;开发环境";;;,
CAS
L和Nasl都不值得您去那么做。 最后祝所有努力学习的朋友好运!
CAS
L汇编器的设计与实现
CAS
L汇编气的设计与实现,相关描述,基本概念,性质,描述了整个汇编过程,步骤
CAS
L 汇编语言程序设计
《
CAS
L 汇编语言程序设计》超星格式 学习
cas
l的教材
软件水平考试
2,948
社区成员
22,580
社区内容
发帖
与我相关
我的任务
软件水平考试
就计算机等级考试、软件初、中、高级不同级别资格考试相关话题交流经验,共享资源。
复制链接
扫一扫
分享
社区描述
就计算机等级考试、软件初、中、高级不同级别资格考试相关话题交流经验,共享资源。
c1认证
c4java
c4前端
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章