DAS的汇编指令
1个回答
展开全部
DAS(Decimal Adjust for Subtraction) 如果(AL & 0FH)>9或辅助进位标志A=1 (即个位数不够减,需要借位),则:AL的值减6 (校正低4位)
„ 辅助进位标志A置1;如果AL>9FH 或进位标志C=1 (即十位数不够减,需要借位),则:
„ AL的值减60H (校正高4位)进位标志C置1 (AL)=12H(12的组合BCD码),(BL)=34H (34的组合BCD码),求12-34的值。直接执行减法指令:
SUB AL ,BL 后,(AL)= 0DEH,显然结果不正确,需要校正:DAS
DAS指令自动完成以下操作:由于相减时AL的低4 位向高4位进位,AF=1,故:
„ (AL) ←(AL) - 6,即(AL)=0DEH- 6=0D8H
AF=1
由于相加时AL>9FH ,故:
„ (AL) ←(AL) - 60,即(AL)=0D8H- 60=78H
„ CF=1
最后,CF=1,(AL)=78H(因为112 -34=78 )
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询