用了一天把王爽书中的实验七完成了不知道效率怎么样
assume cs:code,ds:datadata segment
db '1975','1976','1978','1979','1980','1981','1982', '1983','1984','1985' ;0-39
dd16, 22, 382, 1356, 2390, 8000,16000, 24486, 50065, 97479 ;40-79
dw3, 7, 9, 13, 28, 38, 130, 220, 476, 778 ;80-99
data ends
table segment
db 10 dup ('yesr summ ne ?? ')
;1975 16 / 3 = 5
;用以上格式存放三段数据并计算结果储存
table ends
stack segment
dw 16 (0)
stack ends
code segment
start: mov ax,data
mov ds,ax
mov ax,table
mov es,ax
mov ax,stack
mov ss,ax
mov sp,10H
sub bx,bx
sub bp,bp
mov cx,10
s: push cx
sub si,si
mov cx,4 ;将data前二段的四个字节的数据以单个字节储存到table段的格式中
s0: mov al,byte ptr ds: ;bp为每个双字节的基址。si以bp为基址偏移到每个字节
mov es:,al ;bx指向table段中的每一段的基址
mov al,byte ptr ds:
mov es:,al
inc si
loop s0
add bp,4
pop cx
add bx,16
loop s
sub bx,bx
sub ax,ax
sub dx,dx
sub si,si
mov cx,10
;将data后一段的数据复制到table段的格式中并计算
s1: mov dx,word ptr ds: ;'80'为基址每二个字节为偏移
mov word ptr es:,dx
mov ax,es:
mov dx,es:
div word ptr es:
mov es:,ax
add si,2
add bx,16
loop s1
mov ax,4c00h
int 21h
code ends
end start
debug可以运行并看到数据正常
不知道有没有语法的不正确大家帮忙看看
你编译运行一下就知道正确与否了。 希望楼主继续努力。。。 I look 了 一下。 Finally 的结论is, 很遗憾,I look 不understand 。
页:
[1]