墨血 发表于 2014-7-12 18:23:31

s3 的循环跳不出,不知道哪里出错了

assume cs:codesg

datasegment
        db '1975','1976','1977','1978','1979','1980','1981','1982','1983'
        db '1984','1985','1986','1987','1998','1989','1990','1991','1992'
        db '1993','1994','1995';以上是 表示21年的21个字符串
        dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,14041,197514
        dd 345980,590827,803530,1183000,1843000,2759000,3753000,4649000,5937000
        ;以上是表示21年公司总收入的21个dword型数据
        dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
        dw 11542,14430,15257,17800
        ;以上是表示21年公司雇员人数的21个word型数据
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 es,ax
                mov bx,0
                mov si,0
                mov bp,0
                mov cx,21
        s:        mov ax,
                mov ,ax
                add si,2
                mov ax,
                mov ,ax
                add si,2
                add bp,10h
        loop s
                mov cx,21
                mov si,0
                mov bp,0
        s1: mov ax,
                mov ,ax
                add si,2
                mov ax,
                mov ,ax
                add si,2
                add bp,10h
        loop s1
                mov cx,21
                mov si,0
                mov bp,0
        s2: mov ax,
                mov ,ax
                add si,2
                add bp,10h
        loop s2
                mov cx,21
                mov bp,0
        s3: mov ax,
                mov dx,
                div word ptr
                mov ,ax
                add bp,10h
        loop s3
       
                mov ax,4c00h
                int 21h
codesg ends
end startfile:///C:\Users\Administrator\AppData\Roaming\Tencent\Users\821006520\QQ\WinTemp\RichOle\_G(ISERH09YO10YJSPOPW@E.jpg


墨血 发表于 2014-7-12 18:24:36

突然就跳出 ???了

欣欣celin 发表于 2014-7-12 20:03:53

如果没记错的话,进入循环前所有的寄存器参数都要先入栈,并在循环结束时出栈,以上代码好像完全忽略了这步骤哦

墨血 发表于 2014-7-12 23:01:36

欣欣celin 发表于 2014-7-12 20:03
如果没记错的话,进入循环前所有的寄存器参数都要先入栈,并在循环结束时出栈,以上代码好像完全忽略了这步骤 ...

我把es寄存器 改成ss寄存器就可以了,非常感谢提醒{:1_1:}

拈花小仙 发表于 2014-7-12 23:45:52

看起来很不错哈~

wswgy315 发表于 2014-7-13 08:41:48

:loveliness:,新手看不懂

欣欣celin 发表于 2014-7-13 23:18:48

墨血 发表于 2014-7-12 23:01
我把es寄存器 改成ss寄存器就可以了,非常感谢提醒

{:7_174:}不客气

gyixue 发表于 2014-8-27 21:18:42

寄存器用的好像不太对,没细看楼主可以检查一下
页: [1]
查看完整版本: s3 的循环跳不出,不知道哪里出错了