首页
社区
课程
招聘
王爽《汇编语言第二版》实验七 编程源码
发表于: 2011-7-29 18:23 9842

王爽《汇编语言第二版》实验七 编程源码

2011-7-29 18:23
9842
先聊聊吧,潜水这么长时间,除了升级为2个太阳,其他时间除了工作大部分都用来看书了,受益匪浅啊,值得一提的是王爽老师的《汇编语言》以前囫囵吞枣的看了几遍,都似懂非懂的,不过最近重新看起这本书,第八章刚读完,基本上都清晰了,刚好第八章末有个实验,王爽老师在书中说这是截至第八章结束最为复杂的一个程序,也许太笨,反正在我做起来确实是有头疼的感觉,花了近3个小时,在纸上写完了整个过程,不知道对不对,先发上来,我还连一门高级语言都不会呢,第一次写这么长的代码,还是汇编的,,期望能得到各路高手的批评与指正,期待再进一步,谢谢!代码如下:
   stacksg segment
     dw 8 dup (0)
    stacksg  ends             ;定义栈段,保护循环计数器使用

codesg segment

    start: mov ax,stacksg
          mov ss,ax
          mov sp,16             ;设置ss:sp指向stacksg:0

          mov ax,data
          mov ds,ax
          mov bx,0                ;设置ds:bx指向data:0
          mov di,0
          mov cx,21               ;设置外循环计数器

   s0:  push cx                   ;计数器入栈,保护不被内循环计数器覆盖
       mov si,0
          mov cx,4

   s1:  mov table:[di+si],ds:[bx+si]
          inc si
          loop s1                                       ;年份传入
          pop cx                                         ;计数器出栈,保证下次循环计数的正常使用

   s2:  push cx
          mov si,0
          mov cx,4
          add  bx,84
   s3:  mov table:[di+5+si],ds:[bx+si]
          inc si
          loop s3                                              ;收入传入
       pop cx

   s4:  push cx
          mov si,0
          mov cx,2
          add bx,168
   s5:  mov table:[di+10+si],ds:[bx+si]
          inc si
          loop s5                                                 ;雇员数传入
       pop cx

   s6:  push cx
          mov,cx,1
         

    s7:  mov ax,table:[di+5]            ;被除数收入低位字节传入
       mov dx,table:[di+7]             ;被除数收入高位字节传入
       div word ptr table:[10]            ;设置除数为雇员数      
       mov table:[13],ax                     ;人均输入传入
       loop s7
           pop cx

     loop s0

          mov ax,4c00h
          int  21h

codesg ends

   end start

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 90
活跃值: (91)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
楼主再改改 有错误
2011-7-29 19:45
0
雪    币: 1585
活跃值: (190)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
3
首先表示感谢,我刚才也正在编辑,已经改掉一些错误,不知道还有没有错误,希望指点!
2011-7-29 19:59
0
雪    币: 1585
活跃值: (190)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
4
还有错误么?错误在哪里?求指点!!
2011-7-29 20:52
0
雪    币: 1585
活跃值: (190)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
5
继续等待解答!!!
2011-7-29 22:31
0
雪    币: 278
活跃值: (25)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
dx不能作为基址寄存器,table:[dx+si]之类的编译就错了。
2011-7-29 22:55
0
雪    币: 1585
活跃值: (190)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
7
感谢6楼,的确是这样,我刚开始编程有些细节的确注意不够,谢谢指点,程序已经修改,期待高手指点其他错误!
2011-7-29 23:23
0
雪    币: 1585
活跃值: (190)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
8
等待高手给出错误提示!
2011-7-30 17:33
0
雪    币: 1585
活跃值: (190)
能力值: ( LV8,RANK:120 )
在线值:
发帖
回帖
粉丝
9
速度,求错!
2011-8-7 16:14
0
游客
登录 | 注册 方可回帖
返回
//