社区
汇编语言
帖子详情
压缩BCD码的减法运算????
ni_ch
2001-10-29 11:03:18
希望知道得发到我的邮箱里。
ni_ch@sina.com
对于发来的每一个都有分给,每个都给100分
...全文
453
2
打赏
收藏
压缩BCD码的减法运算????
希望知道得发到我的邮箱里。 ni_ch@sina.com 对于发来的每一个都有分给,每个都给100分
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tarzan710
2001-10-30
打赏
举报
回复
组合型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
tarzan710
2001-10-30
打赏
举报
回复
不好意思,上面有一点点错误。
OR AL,30H
这句转换成ASCII码只能是对非压缩的BCD码才行,对于一个字节存放两个BCD码则不行。
可以分别对一个字节的高四位和低四位求ASCII。
BCD码
的
运算
法则
BCD码
的
运算
规则, 很实用的资料,对于编程有重要的知道意义。
AVR汇编关于计算的小程序
AVR汇编中计算:定点
运算
和定点数制...十进制数(在R16中)左移调整子程序2.
bcd码
减法
调整子程序,差在R16中3.
bcd码
(在R16中)右移调整子程序,4.4字节
压缩
bcd码
相加子程序。5.多字节
压缩
bcd码
相加子程序。。。。。。。
Windows启动入门
大家日常都在使用Windows系统,不过你熟悉Windows的启动过程吗?想了解Windows系统的启动配置方法吗?Windows启动系列课程的入门课程将围绕大家常用的Windows 7以及Windows 10系统,讲解这些内容,包括: Windows系统的启动管理器有什么特点?Windows系统的启动配置保存在哪里? 重要的,课程还会教大家一步步来配置Windows系统的启动。
汇编语言指令系统、伪指令
非
压缩
BCD码
调整指令AAA、AAS、AAM、AAD
压缩
BCD码
调整指令DAA、DAS 位
运算
指令 逻辑
运算
指令 AND、OR、XOR指令 NOT、TEST指令 移位指令 基本移位指令SHL、SAL、SHR、SAR 循环移位指令ROL...
汇编实验报告(1).doc
4)写程序把从键盘输入的四位十六进制数转换为
压缩
的
BCD码
,并显示输出。 5)编写一通用过程用来将十进制数(从键盘输入)转换为P(从键盘输入)进制数。 三、实验设备 PC机一台 四、实验步骤 1) 按程序流程图编制实验...
汇编语言
21,459
社区成员
41,601
社区内容
发帖
与我相关
我的任务
汇编语言
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
复制链接
扫一扫
分享
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章