当前位置: 代码迷 >> 汇编语言 >> 汇编数组有关问题
  详细解决方案

汇编数组有关问题

热度:1144   发布时间:2013-02-26 00:00:00.0
汇编数组问题
汇编中怎样定义数组啊?在以score为首址的存区中依次存放着7位学生的5门成绩,试编制一个子程序求每位学生的平均成绩,并将其存放在该生单科成绩之后的1个单元。编另一个子程序求每门课的平均成绩,并将其依次存放在ave-score为首的存储区中。用主程序调用两个子程序。7位学生的5门成绩怎么定义?
------解决方案--------------------------------------------------------
score1 db 5 dup(0)
score2 db 5 dup(0)
...
...


------解决方案--------------------------------------------------------
程序没有给出部分代码么?7*5的数据应该是事先给出来的吧?如果需要自己定义的话一个接一个定义就行了。
不过感觉第一个问好像有点问题,按照我的理解应该是要这样定义:
score db 87,75,83,91,79,?
      db 93,82,91,79,79,?
      ...
最后一个用来存放每位同学的平均成绩。
第二问要定义一个这样的东西:
ave-score db ?,?,?,?,?
然后用类似这种方式寻址(汇编很久没碰了不知道能不能运行):
mov ax,0
mov bx,offset score
mov ax,[bx]
mov ax,[bx+1]
...
mov ax,[bx+4]
mov cl,5
div cl
mov [bx+5],al ;我忘了商是ah还是al了
mov ax,0
add bx,6
mov ax,[bx]
mov ax,[bx+1]
...
mov ax,[bx+4]
最好是用一下循环。

每一课的成绩用类似这种方法:
mov bx,offset score
mov ax,[bx]
add bx,6
mov ax,[bx]
add bx,6
...
mov bx,offset score+1
...
其实还有更简便的方法。
  相关解决方案