本文主要是介绍带进(借)位的加减法(1102),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
本文为《汇编语言程序设计》1102小节例程。点击链接…进课程主页。
编写一个子程序,对两个128位数据进行相加。
名称:add128
功能:两个逆序存放的128位数据进行相加
assume cs:code,ds:data
;这里的128位在data空间中是逆序放置的,就是从低位到高位排列的
data segmentdw 0A452H, 0A8F5H, 78E6H, 0A8EH, 8B7AH, 54F6H, 0F04H, 671EHdw 0E71EH, 0EF04H, 54F6H, 8B7AH, 0A8EH, 78E6H, 58F5H, 0452H
data endscode segment
start : mov ax,datamov ds,axmov si,0mov di,16mov cx,8call add128mov ax,4c00hint 21h;编写一个子程序,对两个128位数据进行相加。;名称:add128
;功能:两个128位数据进行相加
;参数:
; ds:si指向存储第一个数的内存空间,因数据为128位,所以需要8个字单元,由低地址单元到高地址单元依次存
; 放128位数据由低到高的各个字。运算结果存储在第一个数的存储空间中。; ds:di指向存储第二个数的内存空间
add128: push axpush cxpush sipush disub ax,ax ;将CF设置为0s:mov ax,[si]adc ax,[di]mov [si],axinc siinc siinc diinc diloop spop dipop sipop cxpop axretcode ends
end start
这篇关于带进(借)位的加减法(1102)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!