MMIX 汇编入门

这篇博客介绍了MMIX汇编语言的基础知识,包括如何编写"Hello, World!"程序,从键盘读取输入,以及如何输出数字。作者分享了学习过程中遇到的挑战和解决方法,并提供了相关资源链接。博客还包含多个示例程序,如ScanNum.mms和PrintNum.mms,解释了子程序调用和栈操作的概念。" 126013515,6676235,搭建vue3+TypeScript+antd环境教程,"['前端开发', 'Vue', 'TypeScript', 'UI框架', '项目配置']
摘要由CSDN通过智能技术生成

       以下我要写MMIXAL基本程序的编写,运行及调试。

       去年6月份接到把C代码改写成MMIXAL代码的任务,于是上网查找,几乎无任何收获(但愿不是自己的搜索能力太差)。最后在某个外国网站上找到了编译器,不知道是用哪国语言写的使用说明,摸索了一天终于写出了个"Hello , World!"程序,接下来一个星期的痛苦摸索终于把简单任务给做完。今天写下自己所掌握的东西。x86汇编一下简称汇编。参考资料:<<计算机程序艺术>> 1 ,<<mixware>>文档。

http://search.download.csdn.net/search/MMIXAL 编译器的安装和使用

http://search.download.csdn.net/search/mixware  mixware文档

 

/

       "Hello , World!"程序

  % 数据段声明,类似汇编

               LOC              Data_Segment

       % 无名基地址

       GREG            @

% 字符串声明,类似于汇编,String为标号,BYTE为类型,

% "#a,0"回车换行

       String             BYTE      "Hello , World!",#a,0

  % 指明程序的基地址 

                                   LOC              #200

% Main 程序的入口地址,类似于汇编的beginstart,

% Main标号的同一行如果没有代码则会出现警告或者错误

% ,如果一行太长也会出现警告和错误.

% LDA     $255 , String 把标号 String 的地址装入寄存

% $255,寄存器$255用于输入输出,之后的程序会相继

% 提到如何使用.

       Main              LDA              $255 , String

% TRAP     0,Fputs,StdOut调用中断输出,类似于汇编

% INT 09H中断

                            TRAP     0,Fputs,StdOut

       % TRAP 0,Halt,0程序结束,类似于汇编的 INT 21H

                            TRAP     0,Halt,0

   整个程序如下:

       LOC       Data_Segment

       GREG            @

String      BYTE      “Hello , World!”,#a,0

       LOC       #200

Main              LDA       $255 , String

                     TRAP     0 , Fputs , StdOut

                     TRAP     0 , Halt , 0

       好了,现在"Hello , World!"已经写好,写好的程序保存为Hello.mms。开始运行。打开DOS,进入程序所在位置。如下图

/

       从键盘读取一个数存入寄存器 $0 , ScanNum.mms

% OCTA 最大长度为 64 位,2010进制

% 读入一个OCTA类型的数并存入 $0 寄存器

 

% 程序中有两个需要注意的地方:

% PBNN        $2,2F: 2F表示这一句后面标号为 2H

% 整句的意思就是:

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值