社区
数据结构与算法
帖子详情
请教压缩的BCD码的减法算法。
forulong
2001-10-27 05:26:10
...全文
415
5
打赏
收藏
请教压缩的BCD码的减法算法。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
baifeng
2002-04-18
打赏
举报
回复
gz
forulong
2001-10-28
打赏
举报
回复
http://www.csdn.net/expert/topic/344/344146.shtm
forulong
2001-10-28
打赏
举报
回复
tarzan710(陶然),请到asm区去领分。
tarzan710
2001-10-27
打赏
举报
回复
组合型BCD码(即压缩的BCD码)减法调整指令为DAS(Decimal Adjust for Subtraction),在执行这条指令之前,必须首先执行SUB或SBB等减法指令,且相减结果已经存入在AL寄存器中。它执行的操作是:
(AL)<-把AL寄存器中的差值调整为组合型BCD码格式
其执行过程如下:
(1)如果AL寄存器的低4位在A-F之间或标志寄存器的AF位为1,则AL寄存器的内容减6,并将标志寄存器的AF位置1;
(2)如果AL寄存器的高4位在A-F之间或标志寄存器的CF位为1,则AL寄存器的内容减6,并将标志寄存器的CF位置1。
下面是一个程序段说明如何实现组合型BCD码的减法。
设被减数524,减数861,SUB1指向524的首位,SUB2指向861的首位。则SUB1指向的字节存放的是5,SUB1+1指向的是字节存放的是24,SUB2同理。在相减过程中如果被减数小于减数,则运算结果为“-”,此时就必须用SUB2-SUB1才能得到正确结果,我们只须要交换SI和DI即可。
LEA SI,SUB1+1 ;设置被减数指针
LEA DI,SUB2+1 ;设置减数指针
MOV AH,‘+’ ;预置相减数结果符号“+”
MOV BX,0
MOV CX,2 ;两数均用2个字节存放操作数,所以要相减2次,就是要循环2次
LOP1:MOV AL,SUB1[BX]
SUB AL,SUB2[BX]
JE NEXT1
JNC NEXT2 ;SUB1>SUB2,转移
MOV AH,'-' ;SUB1<SUB2,修改结果符号“-”
XCHG SI,DI ;减数与被减数交换
JMP NEXT2
NEXT1: INC BX ;改变已处理位数
LOOP LOP1 ;
NEXT2: MOV RESULT,AH ;符号放入结果首址
LEA BX,RESULT+2 ;取存放结果末址
MOV CX,2
CLC
LOP2: MOV AL,[SI] ;两数相减
SBB AL,[DI]
DAS ;十进制调整
LAHF ;暂存向高位的进位
OR AL,30H ;转换成ASCII码
MOV [BX],AL ;保存结果
SAHF
DEC SI
DEC DI
DEC BX
LOOP LOP2
hakuna
2001-10-27
打赏
举报
回复
gz
Windows启动入门
大家日常都在使用Windows系统,不过你熟悉Windows的启动过程吗?想了解Windows系统的启动配置方法吗?Windows启动系列课程的入门课程将围绕大家常用的Windows 7以及Windows 10系统,讲解这些内容,包括: Windows...
程序填空题——
压缩
BCD码
调整指令
程序填空题——
压缩
BCD码
调整指令 题目 在以BCD为首地址的字节单元中存放了3个
压缩
BCD码
x、y、z本程序用以计算x+y-z,并将结果存放在SS字节单元中。试在程序的空格处填入适当的指令。 BCD DB x,y,z SS DB ? … … … MOV AL, BCD ADD AL, BCD+1 DAA SUB AL, BCD+2 DAS MOV SS, AL DAA
压缩
型
BCD码
加法调整指令, DAS
压缩
型
BCD码
减法
调整指令, 通俗的理解就是,用这些调整指令调整为我们十进制类的计算方
[计算机原理]
BCD码
减法
BCD码
减法
也可用补码运算代替,原理和之前写过的八位二进制数补码运算原理相同。 八位二进制数的范围是00H~FFH,八位
BCD码
的范围是00H~99H,也可以像补码运算一样画一个时钟,起点是00H,00H逆时针的第一个数是99H。只要有时钟,就可以用补码运算规则,那么
BCD码
的补码如何求呢,看下图,红色弧线便是08H的补码,计算方法是99H+01H-08H = 9AH - 08H,所以用...
汇编_
压缩
BCD码
和非
压缩
BCD码
BCD码
是表示十进制数的,非
压缩
BCD码
是用8位表示的,其实只用低4位,高4位全为0。例如,十进制数36,用非
压缩
BCD码
表示为:0000 0011 0000 0110 ,这是两个字节。
压缩
BCD码
,就把高4位的0省掉了,用一个字节表示两个
BCD码
了。还是,十进制数36,用
压缩
BCD码
表示为:0011 0110 ,就一个字节就行了。节省了一个字节。 转载于:https://www.cnblogs...
压缩
BCD码
概念
压缩
BCD码
指一个字节8位存储2位
BCD码
。 比如32用8421
BCD码
表示如下: 1. 非
压缩
BCD码
表示:00000011 00000010 2.
压缩
BCD码
表示:0011 0010 使用
BCD码
表示10进位制数字比较好理解,且占用空间较小,在用数字表示的数据方面得到广泛应用。 如果听到“原长度10个字节,用
压缩
BCD码
表示为5个字节”也就好理解了。 比如“123456789...
数据结构与算法
33,007
社区成员
35,326
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章