| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 456 人关注过本帖
标题:朋友门给讲解下这个程序 谢谢了
只看楼主 加入收藏
情非得已
Rank: 1
等 级:新手上路
帖 子:59
专家分:5
注 册:2011-4-23
结帖率:100%
收藏
已结贴  问题点数:0 回复次数:3 
朋友门给讲解下这个程序 谢谢了
data segment
    grade   dw     88,75,95,63,98,78,87,73,90,60
    rank    dw     10 dup(?)
data   ends

code segment

main  proc  far
    assume cs:code,ds:data

start:
     push  ds
     sub   ax,ax
     push  ax
     mov   ax,data
     mov   ds,ax
     mov   di,10
     mov   bx,ax
loop:
     mov   ax,grade[bx]
     mov   dx,0
     mov   cx,10
     lea   si,grade
next:
     cmp   ax,[si]
     jg    no_count
     inc   dx
no_count:
     add   si,2
     loop  next
     mov   rank[bx],dx
     add   bx,2
     dec   di
     jne   loop
     ret
main   endp
   code  ends
      end   start
搜索更多相关主题的帖子: 朋友 
2011-04-26 22:48
你们都要疼我哦
Rank: 11Rank: 11Rank: 11Rank: 11
来 自:火星
等 级:贵宾
威 望:49
帖 子:1296
专家分:2746
注 册:2008-7-13
收藏
得分:0 
悲哀

小妹,哥哥看你骨骼清奇,绝非凡人,将来必成大业,不如这样,你先把裤裤脱了,待哥哥为你开启灵窍,然后我们一起努力钻研如何
2011-04-29 16:43
zaixuexi
Rank: 12Rank: 12Rank: 12
来 自:上海
等 级:火箭侠
威 望:8
帖 子:858
专家分:3233
注 册:2010-12-1
收藏
得分:2 
1. 朋友门->朋友们,代码不会就算了,不要连字也不识.
2. 讲解如下
程序代码:
data segment                    ;数据段头
    grade   dw     88,75,95,63,98,78,87,73,90,60    ;一堆数据
    rank    dw     10 dup(?)                        ;也是一堆放数据的地方咯
data   ends                     ;数据段尾

code segment                    ;代码段头

main  proc  far                 ;main头,段间调用
    assume cs:code,ds:data      ;段关联

start:                          ;一个标号名字叫start
     push  ds                   ;ds入栈
     sub   ax,ax                ;ax等于0
     push  ax                   ;ax入栈       以上3句为retf到psp头铺垫
     mov   ax,data              ;ax等于data
     mov   ds,ax                ;ds等于ax等于seg data
     mov   di,10                ;di等于10
     mov   bx,ax                ;bx等于ax等于seg data,这句会对吗?
loop:                           ;可以用loop标号吗?你们老师怎么教的?
     mov   ax,grade[bx]         ;ax不知道等于什么
     mov   dx,0                 ;dx等于0
     mov   cx,10                ;cx等于10
     lea   si,grade             ;si等于0
next:                           ;一个标号名字叫next
     cmp   ax,[si]              ;不知道等于什么的ax和ds:[si]比较
     jg    no_count             ;大于跳转到名字叫no_count标号的地方
     inc   dx                   ;dx加上1
no_count:                       ;一个标号名字叫no_count
     add   si,2                 ;si加上2
     loop  next                 ;cx减掉1,cx大于0跳转到名字叫next标号的地方
     mov   rank[bx],dx          ;把dx的值放入ds:rank[bx]中去
     add   bx,2                 ;bx加上2
     dec   di                   ;di减掉1,用来干吗的,我没看出来?打酱油的么?
     jne   loop                 ;cx减掉1,cx大于0跳转到一个名字起的不合适的地方
     ret                        ;retf到psp头,通过CD 20返回
main   endp                     ;main尾
   code  ends                   ;代码段尾
      end   start               ;从start开始跑

技术问题,请不要以短消息方式提问
2011-04-29 22:48
情非得已
Rank: 1
等 级:新手上路
帖 子:59
专家分:5
注 册:2011-4-23
收藏
得分:0 
回复 3楼 zaixuexi
hehe 一时疏忽
2011-05-04 23:26
快速回复:朋友门给讲解下这个程序 谢谢了
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019700 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved