非 BCD 码的加减及其混合运算

一、 实验目的

a) 熟悉、掌握十进制调整指令(非 BCD 码)
b) 熟悉掌握非 BCD 码数据段数据的定义
c)实现非 BCD 码的加减及其混合运算

二、实验重难点

a)重点:进行非 BCD 码加减法运算时,需要利用十进制调整指令, 所以要熟悉其指令格式。
1.AAA 指令
指令格式:
AAA ;AAA为无目操作,用以完成对非BCD码加运算校正
用法:(al)<—把 al 中的和调整到非 BCD 码格式
(ah)<—(ah)+调整产生的进位 2.AAS 指令
指令格式:
AAS ;AAS为无目操作,用以完成对非BCD码相减校正
用法类似 AAA
3.高位清零
Mov ah,0 或 xor ah,ah b)难点:调整指令随时无目操作,但隐含操作数必须存在 al 中, 所以做加减运算时,被加、减数必须先存入 al 中;由于调整会 产生进位,所以要对 al 中的每次使用该指令之前高四位清零。 如:x+y
Xor ah,ah
Mov al,x
Add al,y
DAA

三.程序代码

实现 24+18 的 bcd 码运算

Data segment
Bcd1 db 00000100b,00000010b ;
Bcd2 db 00001000b,00000001b
Bcd3 db 2 dup(?)
Data ends
Code segment
Assume cs:code,ds:data
Start:mov ax,data
Mov ds,ax
Xor ah,ah
Mov al,bcd1 Add al, bcd2 aaa
Mov bcd3,al Xor ah,ah
Mov al,bcd1+1 Adc al,bcd2+1 aaa
Mov bcd3+1,al Mov ah,4ch
Int 21h
Code  ends
      End  start

四、实验结果

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值