hong_2005 发表于 2014-4-22 08:53:45

用了一天把王爽书中的实验七完成了不知道效率怎么样

assume cs:code,ds:data
data 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可以运行并看到数据正常
不知道有没有语法的不正确大家帮忙看看












硫酸亚铜 发表于 2014-4-22 11:07:00

你编译运行一下就知道正确与否了。

devilzhang1 发表于 2014-4-27 08:07:47

希望楼主继续努力。。。

传说。 发表于 2014-4-29 20:34:28

I look 了 一下。 Finally 的结论is, 很遗憾,I look 不understand 。
页: [1]
查看完整版本: 用了一天把王爽书中的实验七完成了不知道效率怎么样