求助,实验七,年份存不了
ssume cs:code,ds:date,es:tabledate 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'
;以上是表示21年的21个字符串
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,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型数据
date ends
table segment
db 21 dup ('year summ ne ?? ')
table ends
code segment
start: mov ax,date
mov ds,ax
mov ax,table
mov es,ax
mov bx,0
mov bp,0
mov si,0
mov cx,21
s1: mov dx,
mov ax, ;传年份
mov es:,dx
mov es:,ax
mov ax,ds:
mov es:,ax;传人数
mov dx,
mov ax, ;传收入
mov es:,dx
mov es:,ax
div word ptr es:
mov es:,ax;传人均收入
add bp,16
mov bx,4
loop s1
mov ax,4c00h
int 21h
code ends
end start
loop s1上面的mov bx, 4改为add bx, 4,这样就能存进去年份了。。。 这是课后标准答案,建议对照答案自己调试解决。assume cs:code,ds:data,es:table
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,1843000,2759000,3753000,4649000,5937000
dw 3,7,9,13,28,38,130,220,476,778,1001,1442,2258,2793,4037,5635,8226
dw 11452,14430,15257,17800
data ends
table segment
db 21 dup ('year summ ne ?? ')
table ends
code segment
start:mov ax,data
mov ds,ax
mov ax,table
mov es,ax
mov bx,0
mov si,0
mov di,0
mov cx,21
s: mov ax,
mov es:,ax
mov ax,.2
mov es:.2,ax
mov ax,.84
mov es:.5,ax
mov dx,.86
mov es:.7,dx
div word ptr ds:.168
mov es:.13,ax
mov ax,.168
mov es:.10,ax
add di,2
add bx,4
add si,16
loop s
mov ax,4c00h
int 21h
code ends
end start
编辑代码的时候请使用代码编辑框,这样别人复制你的代码时会省去很多时间滴
如图所示 前来观看。。。。。。。。。 一个人在战斗 发表于 2014-8-15 17:30
loop s1上面的mov bx, 4改为add bx, 4,这样就能存进去年份了。。。
谢谢,难怪,原来打错了,这样是可以存进年分了,但除法溢出,我写这个题目写了两个程序都除法溢出,求助{:5_96:} 进击的小灰灰 发表于 2014-8-15 17:42
谢谢,难怪,原来打错了,这样是可以存进年分了,但除法溢出,我写这个题目写了两个程序都除法溢出,求助 ...
在loop s1上面加上add si, 2就可以了。。。 一个人在战斗 发表于 2014-8-15 20:18
在loop s1上面加上add si, 2就可以了。。。
谢谢 assume cs:code ,ds:data ,es:table
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'
;以上是表示21年的21个字符串,0-53h
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,59827,803530,1183000,1843000,2759000,3753000,4649000,5937000
;以上是表示21年公司总收入的21个dword型数据 ,54h-0a7h
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型数据 ,0a8h-0d1h
db ' ' ;0d2h
dataends
table segment
db 21 dup ('year summ ne ?? ')
table ends
code segment
start: mov ax,data
mov ds,ax
mov bx,0
mov si,0
mov di,0
mov ax,table
mov es,ax
mov cx,21
s: mov ax,
mov es:,ax
mov ax,2
mov es:2,ax
mov ax,84
mov es:5,ax
mov dx,86
mov es:7,dx
div word ptr ds:168
mov es:13,ax
mov ax,168
mov es:10,ax
add si,4
add bx,16
add di,2
loop s
mov ax,4c00h
int 21h
code ends
end start我和小鱼老师的代码对过了,应该没有错误,但是运行完之后,只有年份显示
有时运行后是这样
assume cs:code ,ds:data ,es:table
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'
;以上是表示21年的21个字符串,0-53h
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,59827,803530,1183000,1843000,2759000,3753000,4649000,5937000
;以上是表示21年公司总收入的21个dword型数据 ,54h-0a7h
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型数据 ,0a8h-0d1h
db ' ' ;0d2h
dataends
table segment
db 21 dup ('year summ ne ?? ')
table ends
code segment
start:mov ax,data
mov ds,ax
mov ax,table
mov ss,ax
mov bx,0
mov si,0
mov bp,0
mov cx,21 ;bx的值始终未变,要bx有什么用。?
;哪里优化了?
;为什么在debug中用d看不到应该有的结果?
s0:mov ax,
mov ,ax
add si,2
mov ax,
mov ,ax
add si,2
add bp,10h
loop s0
mov cx,21
mov bp,0
mov si,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 bp,0
mov si,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
code ends
end start这是小鱼老师的另外一个程序,我在注释里提了三个问题。运行结果还是不对
胖胖大头梨 发表于 2014-10-24 09:16
这是小鱼老师的另外一个程序,我在注释里提了三个问题。运行结果还是不对
我也遇到同样的问题,同求解释
页:
[1]