用c语言打开mix文件,MIX教程

1.简介

MIX是The Art of Computer Programming书中所用的汇编语言。

寄存器:有9个寄存器,A、X、J、I1、I2、I3、I4、I5、I6。I1~I6为变址寄存器。参见后面的图3。

MIX中一个字由5个字节和一位符号位组成。

MIX中的字符包括A-Z的大写字母,0-9的数字和部分特殊符号。

指令格式(这里是说机器指令):

|     0     |     1     |      2    |      3       |      4    |       5      |

|            地     址             |    index  |   mod   |     操作码  |

这是定长指令格式,所有指令都是6字节,其中第字节为符号,

0 1 2号字节共同组成地址。

我觉得不用太关心机器指令,不过书上说了很多。

在实例1中具体说明。

2.实例讲解

实例1,代码在第一卷1.3.2节140页,算法在1.2.10节93页。

代码:

X        EQU    1000

ORIG    3000

START     STJ    EXIT

INIT    ENT3    0,1

JMP    CHANGEM

LOOP    CMPA    X,3

JGE    *+3

CHANGEM   ENT2    0,3

LDA    X,3

DEC3    1

J3P    LOOP

EXIT   JMP    *

END    START第一个例子,我尽量说详细。这是一个求最大值的例子,求数组x[1]...x[n]的最大值m,储存到寄存器A

先说初始化,书上省略了的,寄存器I1为数组长度n。寄存器I3用于存k,寄存器I2存j。

n是提前给了初值的,k和j是运行的时候再初始化的。

ORIG    3000

表示程序是从3000的地址开始运行的,

X        EQU    1000

表示数据是从1000号单元开始存放的,这里省略了数据的初始化。

即提前在1000、1001、1002...1000+N号单元存放了一组数据,这个程序是要找出其中的最大值。

STJ  EXIT

STJ就是store  rJ,即储存寄存器J到EXIT所在的地址,J即jump,是一个跳转用的寄存器,

EXIT是个标签,怎么能存到标签呢,实际是存到那个机器指令的地址字段,如图1:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值