作业帮 > 综合 > 作业

汇编语言:十个压缩BCD数相加,求大神

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/15 08:38:22
汇编语言:十个压缩BCD数相加,求大神
如题,完全不懂……
8086的……
十个压缩BCD数相加的基本算法:
1 采用一个循环结构,一次加8位(即2位压缩BCD数) 共需要循环相加5次
既可以完成十个压缩BCD数相加.
使用3个指针,一个指向被加数,一个指向加数,一个指向和
2 使用带进位的加法指令 即 ADC 指令 每次加完后 要进行十进制调整 即使用DA A指令
修改3个指针,指向下一个数据.
3 循环次数减1,不等于0,继续循环,否则结束.
楼上的使用单片机汇编指令时不行的,人家需要的是8086CPU的.
嘿嘿 满意就给加分哦 具体指导 可以见百度消息
再问: 本人这方面小白一只,刚开始学微机原理,然后老师就挑人讲题,他自己不讲。完全靠看书,看不懂啊,我就郁闷了……可以帮忙编译一下么,分有的是……
再答: 见百度消息(右上角的私信) 自己去上机 编译后 就可以运行了
再问: 看到了,确实是这么回事,能看懂,编译了下: wrong parameters:MOV DI,DATA2 operands do not match:16 bit register and 8 bit adress 这是什么情况呢? 新手比较笨,谢谢了!
再答: 将MOV SI, DATA1 和 MOV DI, DATA2 2条指令修改为: MOV SI, OFFSET DATA1 MOV DI, OFFSET DATA2 就可以了
再问: 还得麻烦下…… (15)illegal instruction:LLL1:MOV AL,[SI] or wrong parameters (22)undeclared label:LOOP LLL1
再答: 将MOV BX, SUM 改为MOV BX, OFFSET DATA1 LLL1:改为LLL: 冒号书写的不对 半角 ., 而不是。,的状态下
再问: 成功了…… 再问一下,如果要把这个结果显示出来该怎么弄呢?
再答: 呵呵 要使用DOS调用 用INT 21H 指令 例如: 显示一个字符a MOV AH,6 MOV DL,'a' INT 21H 呵呵 满意 就给加分喽