求助!!实验7整了几天都弄不明白
本帖最后由 loop 于 2011-4-17 04:29 编辑实验7的问题,代码如下assume cs:code,ds:data
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 10h,16h,17eh,54ch,2390,8000,16000,24486,50065,97479,140417,197514
dd 345980,590827,803530,1183000,1843000,2750000,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
stack segment
dw 0,0,0,0,0,0,0,0
dw 0,0,0,0,0,0,0,0,0,1,2,3,5,9,12,18,28,41,57,70,90
stack ends
table segment
db 21 dup ('year summ ne ?? ')
table ends
code segment
w:mov ax,data
mov ds,ax
mov ax,table
mov es,ax
mov ax,0
mov cx,21
s0:
mov ax,
mov es:,ax
mov ax,
mov es:,ax
add bx,2
mov ax,
mov es:,ax
mov ax,
mov es:,ax
add bx,2
mov ax,
mov es:,ax
add di,2
add si,10h
loop s0
mov cx,21
mov ax,stack
mov ss,ax
mov sp,16
mov si,0
mov di,0
mov bx,0
s1:pop dx
mov ax,
div word ptr
mov es:,ax
add bx,2
add di,4
add si,10h
loop s1
mov ax,4c00h
int 21h
code ends
end w
为什么在ES段只能看到年份,其他的看不到。哪里出错了,搞不懂。 呵呵,大家一起学习,一起进步嘛 ;P哈哈,探讨得真知啊! 这个题目要等你吧第10章学完后,才能解决 代码是不是可以简化一下 为什么会这样? 回复 9# moshushi
怎么会这样呢?我在我的机子上都能运行啊。 本帖最后由 loop 于 2011-4-16 01:59 编辑
assume cs:code,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 11542,14430,15257,17800
data ends
table segment
db 21 dup ('year summ ne ?? ')
table ends
code segment
sta: 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,
mov es:,ax
mov ax,
mov es:,ax
mov ax,
mov es:,ax
mov ax,
mov es:,ax
mov ax,
mov dx,
div word ptr
mov es:,ax
add bx,4
add di,2
add si,10h
loop s
mov ax,4c00h
int 21h
code ends
end sta 同问:为什么在ES段只能看到年份,其他的看不到。哪里出错了,搞不懂。 回复 小甲鱼 的帖子
小甲鱼老师有时间帮我看下试验七的代码:
assume cs:code
data segment
db '1975','1976','1977','1978','1979','1980','1981','1982','1983','1984','1985','1986','1987','1988','1989','1990','1991','1992','1993','1994','1995'
dd 16,22,382,1356,2390,8000,16000,24486,50065,97479,140417,197514,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,6535,8226,11542,14430,15275,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 al, ;年份部分传送部分
mov es:,al
inc bx
mov al,
mov es:,al
inc bx
mov al,
mov es:,al
inc bx
mov al,
mov es:,al
inc bx
add di,10h
loop s
mov bx,0
mov si,54h
mov di,0
mov cx,21
s1: mov ax, ;总收入传送部分
add bx,2
mov dx,
add bx,2
mov es:,ax
mov es:,dx
add di,16
loop s1
mov bx,0
mov si,0a8h
mov di,0
mov cx,21
s2: mov ax, ;人数传送部分
mov es:,ax
add bx,2
add di,16
loop s2
mov bx,0
mov si,54h
mov di,0
mov cx,21
s3: mov ax, ;人均收入计算并传送部分
add bx,2
mov dx,
div word ptr es:
mov es:,ax
add di,16
loop s3
mov ax,4c00h
int 21h
code ends
end start
为什么我在用G命令直接执行到MOV AX,4C00H 时总是提示我说除法运算溢出?想了好久没通,帮我看看是程序中那部分出错了?谢谢 小甲鱼老师!
页:
[1]