s3 的循环跳不出,不知道哪里出错了
assume cs:codesgdatasegment
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
突然就跳出 ???了 如果没记错的话,进入循环前所有的寄存器参数都要先入栈,并在循环结束时出栈,以上代码好像完全忽略了这步骤哦 欣欣celin 发表于 2014-7-12 20:03
如果没记错的话,进入循环前所有的寄存器参数都要先入栈,并在循环结束时出栈,以上代码好像完全忽略了这步骤 ...
我把es寄存器 改成ss寄存器就可以了,非常感谢提醒{:1_1:} 看起来很不错哈~ :loveliness:,新手看不懂 墨血 发表于 2014-7-12 23:01
我把es寄存器 改成ss寄存器就可以了,非常感谢提醒
{:7_174:}不客气 寄存器用的好像不太对,没细看楼主可以检查一下
页:
[1]