|
发表于 2004-1-9 10:35:43
|
显示全部楼层
将存放在 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
复制代码 |
|