欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

汇编语言(三十)之多模块求和

发布时间:2023/12/3 编程问答 38 豆豆
生活随笔 收集整理的这篇文章主要介绍了 汇编语言(三十)之多模块求和 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

多文件模块编译,数组求和

程序运行:

暂无

 

代码:

模块一

extern PROADD:fardatas segmentarray dw 1,2,3,4,5,7,8,7,4,3array_len dw ($-array)/2sum dw 0 table dw 3 dup(?) datas endsstacks segment stackdb 100h dup(?)stacks endscodes segmentassume cs:codes,ds:datas,ss:stacks main proc far start:; push ds; mov ax,0h; push axmov ax,datas ;初始化dsmov ds,axmov table[0],offset arraymov table[2],offset array_lenmov table[4],offset sumlea si,tablepush si call far ptr PROADDmov ax,sumcall OUTDECIMALmov ah,4chint 21h ; retmain endpOUTDECIMAL proc far uses ax bx cxmov bx,10 ;除数mov cx,0 ;计数器,记录数的位数bin:xor dx,dx div bx push dx ;保存余数inc cx cmp ax,0h ;判断被除数是否为0jnz bin ;若不为0,则循环继续bin1:pop dxadd dl,30h mov ah,2 ;输出各位数字 int 21h loop bin1 retOUTDECIMAL endpcodes endsend main

模块二

public PROADDcodes1 segmentassume cs:codes1 PROADD proc far uses ax bx cx bp si di mov bp,sp mov si,[bp+16]mov bx,[si]mov di,[si+2]mov cx,[di]mov di,[si+4]mov ax,0 ad:add ax,[bx]add bx,2loop ad mov [di],axret 2 PROADD endpcodes1 ends end

 

总结

以上是生活随笔为你收集整理的汇编语言(三十)之多模块求和的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。