汇编网首页登录博客注册
masmaster的学习博客
博客首页博客互动【做检测题】论坛求助

我的博客

个人首页 |  我的文章 |  我的相册 |  我的好友 |  最新访客 |  文章收藏 |  论坛提问 |  友情链接 |  给我留言  
图片载入中
文章收藏

[2010-08-13 14:50] 小练习:逆序数组

题目要求最多占用1一个元素空间。 其实我感觉用栈操作来的比较简单。 不过作为线性表的练习, 还是移动数据来的有趣。
;----------------------------------------------------
  1 title   reverse array
  2 assume  cs:code
  3 data    segment
  4 array   db      2,3,4,5,6,0
  5 data    ends
  6 code    segment
  7 start:
  8         mov ax,data
  9         mov ds,ax
 10
 11         mov bx,offset array   ;首地址
 12         mov cx,lengthof array ;数组长度
 13         mov si,cx             ;si作为内循环位置
 14 _out:
 15         push cx               ;保存外循环计数器
 16         push si               ;保存最后元素位置
 17 _in:
 18         mov al,[si-1]         ;用AL中转
 19         mov [si],al           ;向后移动数据
 20         dec si
 21         loop _in
 22
 23         pop si                ;
 24         mov al,[si]           ;将最后元素
 25         mov [bx],al           ;存入bx指向地址
 26         mov byte ptr [si],' ' ;填空
 27
 28         inc bx                ;指向下一个地址
 29         pop cx                ;回复计数器
 30         loop _out
 31
 32         mov ah,4ch
 33         int 21h
 34 code    ends
 35 end     start
;----------------------------------------------------
评论次数(0)  |  浏览次数(539)  |  类型(程序与练习) |  收藏此文  | 
 
 请输入验证码  (提示:点击验证码输入框,以获取验证码