当前位置: 网学 > 编程文档 > 汇编语言 > 正文

Casl汇编语言辅导:二、汇编语言常用子程序

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/18
下载{$ArticleTitle}原创论文样式

二、汇编语言常用子程序

1、拆字与拼字:

【例1】将 GR0 中的四位 BCD 码从高到低依次存放到 GR2 所指的四个内存单元中。

  START    
  LEA GR3,4 ;循环计数器
L1 ST GR0,REG ;保护其余几位 BCD 码
  AND GR0,C000F ;屏蔽高 3 位,留下最低 1 位 BCD 码
  ST GR0,3,GR2 ;将此位 BCD 码存放到 GR2 所指第四个内存单元
  LD GR0,REG ;恢复其余几位 BCD 码
  SRL GR0,4 ;将已处理过的此位 BCD 码移出
  LEA GR2.-1,GR2 ;地址指针减 1
  LEA GR3,-1,GR3 ;循环计数器减 1
  JNZ L1 ;未处理完,继续
  RET    
C000F DC #000F ;十六进制常数,屏蔽屏蔽高 3 位 BCD 码用
REG DS 1 ;暂存单元
  END

【例2】将存放在 GR2 所指的四个内存单元中的四位 BCD 码依从高到低顺序压缩到 GR0 中 。

  START    
  LEA GR0,0 ;GR0 清 0
  LEA GR3,4 ;循环计数器
L1 SLL GR0,4 ;将已处理过的 BCD 码移到高位
  LD GR1,0,GR2 ;GR1 用作临时工作寄存器
  AND GR1,C000F ;屏蔽高 12 位
  ST GR1,0,GR2 ;对内存单元中的 BCD 码预处理
  ADD GR0,0,GR2 ;将已处理过的此位 BCD 码加到 GR0 低位
  LEA GR2.1,GR2 ;地址指针指向下一位 BCD 码
  LEA GR3,-1,GR3 ;循环计数器减 1
  JNZ L1 ;未处理完,继续
  RET    
C000F DC #000F ;十六进制常数,屏蔽高 12 位二进制数
  END    

2、数字与 ASCII 码之间的相互转换:

十进制数字 0~9 的 ASCII 码是 30H~39H ,所以只要

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号