分享
 
 
 

编译原理学习日记<2004-2-2>简单指令型计算器(1)指令系统和汇编编译器<下>

王朝other·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

声明

这一系列“编译原理学习日记”中的所有文章为作者个人的准Weblog,所有文章版权均属作者所有。转载请注明出处(CSDN文档中心)、作者(lover_P)及作者联系方式(lyb_dotNET@hotmail.com),并在转载前与作者联系。

附录1 虚拟机指令型计算器指令系统说明

1、运算栈控制指令

这一组指令用于对运算栈进行控制,包括下面这些指令:

PUSH指令

该指令用于向运算栈中压入一个操作数。

DUP指令

该指令复制一个栈顶的操作数,并将这个副本压入运算栈。

这条指令的设计源于IL汇编语言中的dup指令,该指令可以用于将中间结果复制一份,并将副本输出,而原操作数仍留在栈中进行下一步运算。

OUT指令

该指令将栈顶操作数输出到标准输出中。

2、运算指令

这一组指令用于进行具体的运算,其基本运行机理是按照从右到左的规则从运算栈中推出各个操作数,再将运算结果压入运算栈。这一组指令中又分为以下一些类型:

a. 四则运算指令

ADD指令

该指令从运算栈中弹出两个操作数,进行加法运算后将结果压入运算栈。

SUB指令

该指令从运算栈中弹出两个操作数,进行减法运算后将结果压入运算栈。

MUL指令

该指令从运算栈中弹出两个操作数,进行乘法运算后将结果压入运算栈。

DIV指令

该指令从运算栈中弹出两个操作数,进行除法运算后将结果压入运算栈。

b. 指数运算指令

EXP指令

该指令从运算栈中弹出一个操作数,计算以e为底的指数ex值,并将结果压入运算栈。

SQR指令

该指令从运算栈中弹出一个操作数,计算它的平方,并将结果压入运算栈。

CUB指令

该指令从运算栈中弹出一个操作数,计算它的立方,并将结果压入运算栈。

POW指令

该指令从运算栈中弹出连个操作数,设先出栈的操作数为y,后出栈的操作数为x,计算xy,并将结果压入运算栈。

SQRT指令

该指令从运算栈中弹出一个操作数,计算它的平方根,并将结果压入运算栈。

CBRT指令

该指令从运算栈中弹出一个操作数,计算它的立方根,并将结果压入运算栈。

c. 对数运算指令

LN指令

该指令从运算栈中弹出一个操作数,计算它的以e为底的对数,并将结果压入运算栈。

LG指令

该指令从运算栈中弹出一个操作数,计算它的以10为底的对数,并将结果压入运算栈。

LOG指令

该指令从运算栈中弹出两个操作数,计算logxy,并将结果压入运算栈。

d. 三角函数运算指令

SIN指令

该指令从运算栈中弹出一个操作数,计算它(弧度)的三角正弦值,并将结果压入运算栈。

CON指令

该指令从运算栈中弹出一个操作数,计算它(弧度)的三角余弦值,并将结果压入运算栈。

TAN指令

该指令从运算栈中弹出一个操作数,计算它(弧度)的三角正切值,并将结果压入运算栈。

CTN指令

该指令从运算栈中弹出一个操作数,计算它(弧度)的三角余切值,并将结果压入运算栈。

e. 反三角函数运算指令

ASIN指令

该指令从运算栈中弹出一个操作数,计算它的三角反正弦值(弧度),并将结果压入运算栈。

ACOS指令

该指令从运算栈中弹出一个操作数,计算它的三角反余弦值(弧度),并将结果压入运算栈。

ATAN指令

该指令从运算栈中弹出一个操作数,计算它的三角反正切值(弧度),并将结果压入运算栈。

ACTN指令

该指令从运算栈中弹出一个操作数,计算它的三角反余切值(弧度),并将结果压入运算栈。

f. 双曲函数运算指令

SINH指令

该指令从运算栈中弹出一个操作数,计算它(弧度)的双曲正弦值,并将结果压入运算栈。

COSH指令

该指令从运算栈中弹出一个操作数,计算它(弧度)的双曲余弦值,并将结果压入运算栈。

TANH指令

该指令从运算栈中弹出一个操作数,计算它(弧度)的双曲正切值,并将结果压入运算栈。

CTNH指令

该指令从运算栈中弹出一个操作数,计算它(弧度)的双曲余切值,并将结果压入运算栈。

g. 反双曲函数运算指令

ASINH指令

该指令从运算栈中弹出一个操作数,计算它的双曲反正弦值(弧度),并将结果压入运算栈。

ACOSH指令

该指令从运算栈中弹出一个操作数,计算它的双曲反余弦值(弧度),并将结果压入运算栈。

ATANH指令

该指令从运算栈中弹出一个操作数,计算它的双曲反正切值(弧度),并将结果压入运算栈。

ACTNH指令

该指令从运算栈中弹出一个操作数,计算它的双曲反余切值(弧度),并将结果压入运算栈。

附录2 源代码

就不献丑了,有意者与我联系lyb_dotNET@hotmail.com

附录3 参考资料

[1]《现代编译程序设计》 Dick Grune, Henri E. Bal, Ceriel J.H.Jacobs, Koen G.Langendoen著,冯博琴 傅向华译,人民邮电出版社出版。ISBN 7-115-11149-9

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有