彙編練習:Tomy的成績

有下面的一組學生成績數據,編程序求出Tomy同學的總分,最後結果存放在AX中(更強功能還可以繼續期待哦!)

nam ‘Tomy’ ‘John’ ‘Mary’ ‘Jone’
c 78 82 75 92
asm 66 79 95 87
math 78 93 74 100
chinese 90 78 56 63

請在下面程序基礎上完成功能:
要求在程序中必要處要寫上註釋。寫程序前,可以畫規範的流程圖以整理思路。

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


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章