最近讀完了第八章,這道題是一個不錯的總結,記錄下。
原題是21年的資料,這裡簡化為6年。
程式碼如下:
assume cs:codesg
data segment
db '1975', '1976', '1977', '1978', '1979', '1980'
dd 16,22,382,1356,2390,8000
dw 3,7,9,13,28,38
data ends
table segment
db 6 dup('year summ ne ?? ')
table ends
codesg segment
start:
mov ax, data
mov ds, ax
mov ax, table
mov es, ax
mov cx, 6
mov bx, 0
mov bp, 0
mov si, 0
loop1:
mov ax, 0[bx]
mov es:[bp], ax
mov ax, 2[bx]
mov es:[bp+2], ax
mov ax, 24[bx]
mov es:[bp+5], ax
mov ax, 24[bx+2]
mov es:[bp+7], ax
mov ax, 48[si]
mov es:[bp+10], ax
mov ax, 24[bx]
mov dx, 24[bx+2]
mov di, 48[si]
div di
mov es:[bp+13], ax
add bp, 16
add bx, 4
add si, 2
loop loop1
mov ax, 4c00h
int 21h
codesg ends
end start