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

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

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

将十进制数转换为二进制数的算法基础是下面公式:

N = (Dn-1*10n-1+Dn-2*10n-2+……+D1*101+D0*100

  = ((…((Dn-1*10+Dn-2)*10+……+D1)*10+D0)*10

可以用循环程序实现此公式,*10 可用移位及加法指令完成。

【例2】将存放在字符串 STR 中的五位十进制数(<65536)的 ASCII 码转换成二进制数放到 GR0 中 。

  START    
  LEA GR0,0 ;转换结果寄存器清 0
  LEA GR2,5 ;循环计数器
  LEA GR1,0 ;地址指针(偏移量)
L1 SLL GR0,1 ;转换结果*10,先乘以 2
  ST GR0,REG ;暂存 2*X
  SLL GR0,2 ;2*X*4=8*X
  ADD GR0,REG ;8*X + 2*X
  LD GR3,STR,GR1 ;取一位 ASCII 码
  AND GR3,C000F ;将 ASCII 码变成 BCD 码
  ST GR3,REG ;结果暂存
  ADD GR0,REG ;将新的一位 BCD 码加到转换结果中
  LEA GR1,1,GR1 ;地址指针加 1
  LEA GR2,-1,GR2 ;循环计数器减 1
  JNZ L1 ;未结束,继续下一位
  RET    
C000F DC #000F ;十六进制常数,屏蔽高 12 位二进制数
STR DC ''35475''  
REG DS 1 ;暂存单元
  END    

5、求累加和

【例1】将变量 NUMBER 中的 5 个二进制数累加后放入变量 SUM 中。

  START    
  LEA GR2,NUMBER ;地址指针
  LEA GR3,5 ;循环计数器
  LEA GR0,0 ;累加和清 0
L1 ADD GR0,0,GR2 ;累加
  LEA GR2,1,GR2 ;地址指针指向下一个二进制数
  LEA GR3,-1,GR3 ;计数器减 1
  JNZ L1 ;未完,继续
  ST GR0,SUM ;累加结束,累加和送入 SUM 单元
  RET    
NUMBER DS 5  
SUM DS 1  
  END

网学推荐

免费论文

原创论文

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