汇编练习:Tomy的成绩

有下面的一组学生成绩数据,编程序求出Tomy同学的总分,最后结果存放在AX中(更强功能还可以继续期待哦!)

nam‘Tomy’‘John’‘Mary’‘Jone’
c78827592
asm66799587
math789374 100
chinese90785663

请在下面程序基础上完成功能:
要求在程序中必要处要写上注释。写程序前,可以画规范的流程图以整理思路。

assume cs:code,ds:data
data segment
    nam db 'Tomy', 'John', 'Mary', 'Jone'
    c dw 78, 82, 75, 92
    asm dw 66, 79, 95, 87
    math dw 78, 93, 74, 100
    chinese dw 90, 78, 56, 63
data ends
code segment
start:
      mov ax,data
      mov ds,ax


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

提示:Tomy同学的总分是138H。

【参考解答】

assume cs:code,ds:data
data segment
    nam db 'Tomy', 'John', 'Mary', 'Jone'
    c dw 78, 82, 75, 92
    asm dw 66, 79, 95, 87
    math dw 78, 93, 74, 100
    chinese dw 90, 78, 56, 63
data ends
code segment
start:
      mov ax,data
      mov ds,ax

      mov ax, 0     ;存放总成绩
      mov bx, 16    ;取Tomy第一科成绩的偏移地址
      mov cx, 4

  lop:add ax, [bx]  ;累加成绩
      add bx, 8     ;取Tomy的下一科成绩的偏移地址
      loop lop

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


已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页