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

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

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/18
下载{$ArticleTitle}原创论文样式
将十进制数(BCD 码)加 30H 就是对应的 ASCII 码。

十六进制数转换成 ASCII 码可分成两段, 0~9 的 ASCII 码是 30H~39H ,即加 30H ;A~F 的ASCII 码是 41H~45H ,即加 37 H。

【例1】将 GR0 中的四位 BCD 码化成 ASCII 码从高到低依次存放到字符串变量 STR 中。

  START    
  LEA GR2,3 ;相对于 STR 首址的地址指针
  LEA GR3,4 ;循环计数器
L1 ST GR0,REG ;保护其余几位 BCD 码
  AND GR0,C000F ;屏蔽高 3 位,留下最低 1 位 BCD 码
  ADD GR0,C30 ;转换成 ASCII 码
  ST GR0,STR,GR2 ;将 ASCII 码存放到 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 码用
C30 DC #30 ;十六进制常数 30
STR DS 4  
REG DS 1 ;暂存单元
  END    

 

【例2】将 GR0 中的 16 位二进制数化成四位十六进制数 ASCII 码从高到低依次存放到字符串变量 STR 中。

  START    
  LEA GR2,3 ;相对于 STR 首址的地址指针
  LEA GR3,4 ;循环计数器
L1 ST GR0,REG ;保护其余几位二进制数
  AND GR0,C000F ;屏蔽高 12 位,留下最低 4 位二进制数
  CPL GR0,C0A ;< 10 否?
  JMI L2 ;< 10 跳过加 7 ,只加 30H
  ADD GR0,C7 ;≥ 10,加 30H 前先加上 7
L2 ADD GR0,C30 ;加上 30H
  ST GR0,STR,GR2 ;将 ASCII 码存放到 GR2 所指第四个内存单元
  LD GR0,REG ;恢复其余几位二进制数
  SRL GR0,4 ;将已处理过的此 4 位二进制数移出
  LEA GR2.-1,GR2 ;地址指针减 1
  LEA GR3,-1,GR3 ;循环计数器减 1
  JNZ L1 ;未处理完,继续
  RET    
C000F DC #000F ;十六进制常数,屏蔽屏蔽高 12 位二进制数
C30 DC #30 ;十六进制常数 30
C0A DC #0A ;十六进制常数 0A
C7 DC 7 ;常数 7
STR DS 4  
REG DS 1 ;暂存单元
  END    

 

网学推荐

免费论文

原创论文

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