认真 发表于 2012-2-23 15:40:46

实验七,自己写了,在网吧没法debug和生成exe。求测试

assume cs:codesg
data segment
db "1975","1976","1977","1978","1979","1980","1981","1982","1983"
db "1984","1985","1986","1987","1988","1989","1990","1991","1992"
db "1993","1994","1995"
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,590827,803530,1183000,1943000,2759000,3753000,4649000,5937000
dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
dw 11542,14430,15257,17800
data ends

table segment
db 21 dup ("year summ ne ?? ")
table ends

codesg segment
start:
    mov ax,data
        mov ds,ax
       
        mov ax,table
        mov ds,ax
   
        mov bx,0
        mov si,0
       
s:        mov cx,21
        mov ax,
        mov es:,ax
       
        mov ax,
        mov es:,ax
       
        mov ax,
        mov es:,ax
       
        add si,2
        mov ax,
        mov es:,ax
       
        mov ax,
        mov es:,ax
       
        mov ax,es:
        mov dx,es:
        div word ptr es:
        mov es:,ax
       
        add bx,16
        add si,2
        loop s
       
        mov ax,4c00h
        int 21h
codesg ends
end
       

hkcx3000 发表于 2012-2-23 22:22:58

本帖最后由 hkcx3000 于 2012-2-23 22:23 编辑

除法溢出了

认真 发表于 2012-2-23 23:18:26

hkcx3000 发表于 2012-2-23 22:22 static/image/common/back.gif
除法溢出了

这个没学到呢,怎么解决

莫名其妙 发表于 2012-2-24 15:50:24

本帖最后由 莫名其妙 于 2012-2-24 16:16 编辑

人数是DW数据 一次跳4个字节你mov ax,   一次循环跳16个字节   定义个DI    mov ax, 每次循环add,di,2   

add si,2
mov ax,
      mov es:,ax      mov es:,ax
mov ax,
      mov es:,ax   这里你每循环一次 存入的位置都要在向后移动 一次 题目要求的是固定的位置 上面一句还是正确的下面就不能这样写了应该是mov es:,ax

.......还有这里
mov ax,table
      mov ds,ax   是es.....

还有你前面加了start :后面也要
codesg ends
endstart
改完了!~
debug 过了!~


认真 发表于 2012-2-24 19:14:38

莫名其妙 发表于 2012-2-24 15:50 static/image/common/back.gif
人数是DW数据 一次跳4个字节你mov ax,   一次循环跳16个字节   定义个DI    mov ax, 每次循 ...

嗯,谢谢了哈,现在看JMP,跳得头晕。又得搞几天了

n2zee 发表于 2012-2-29 12:12:08

s:      mov cx,21 错误
页: [1]
查看完整版本: 实验七,自己写了,在网吧没法debug和生成exe。求测试