汇编程序:求总成绩

求总成绩

在下面的数据段中,给出了全班5名同学OS、AL、SE、DB课程的成绩,请编程计算出总成绩,写在0值处

datasg segment
dw 54, 74, 71, 52, 0
dw 68, 54, 93, 95, 0
dw 81, 52, 97, 67, 0
dw 98, 77, 69, 99, 0
dw 79, 71, 69, 73, 0
datasg ends

[参考解答]

assume cs:codesg,ds:datasg, ss:stacksg
datasg segment
dw 54, 74, 71, 52, 0
dw 68, 54, 93, 95, 0
dw 81, 52, 97, 67, 0
dw 98, 77, 69, 99, 0
dw 79, 71, 69, 73, 0
datasg ends
stacksg segment
dw 0,0,0,0,0,0,0,0
stacksg ends
codesg segment
start: mov ax, stacksg
mov ss, ax
mov sp, 16
mov ax, datasg
mov ds, ax
mov bx, 0 ;基址
mov cx, 5 ;外层循环次数

s0: push cx ;保存外层循环数
mov si, 0 ;[bx+si]将是要处理的数值
mov cx, 4 ;设置内层循环次数
mov ax, 0 ;用于存储累加和
s: add ax, [bx+si] ;取成绩
add si, 2
loop s

mov [bx+si], ax ;保存和
add bx, 10 ;下一位同学成绩的基址
pop cx ;恢复外层循环
loop s0

mov ax,4c00h
int 21h
codesg ends
end start

永不止步步 发表于04-20 10:02 浏览65535次
分享到:

已有0条评论

暂时还没有回复哟,快来抢沙发吧

添加一条新评论

只有登录用户才能评论,请先登录注册哦!

话题作者

永不止步步
金币:67410个|学分:306117个
立即注册
畅学电子网,带你进入电子开发学习世界
专业电子工程技术学习交流社区,加入畅学一起充电加油吧!

x

畅学电子网订阅号