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

我的博客

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

[2010-09-10 10:50] 练习:递归实现阶乘8!

那两道题太难,先放一放。。。。。。这个练习没有考虑8以上的阶乘, 如果需要,就把栈定义好,然后做32位除法。即可。
;-----------------------------------------------------
asume   cs:code
code    segment
start:
        mov ax,8
        mov cx,ax
        call fact
quit:
        call disp
        mov ah,4ch
        int 21h

fact    proc near
  ...
阅读全文 | 评论次数(0) | 浏览次数(809) | 所属类型(程序与练习)

[2010-09-05 09:50] 练习:一个排序程序

书里的程序看着比较纠结, 还是按自己的想法和代码来实现吧, 虽然不如书里的好。
;-----------------------------------------------------
title   sort number
assume  cs:code,ds:data
data    segment
num     db      12h,90h,45h,34h,89h,56h,78h,0,23h
data    ends
code    segment
start:
        mov ax,data
        mov ds,ax
        mo...
阅读全文 | 评论次数(2) | 浏览次数(1237) | 所属类型(程序与练习)

[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     ...
阅读全文 | 评论次数(0) | 浏览次数(535) | 所属类型(程序与练习)

[2010-08-09 21:56] 顺序表算法练习之:表的拆分

点击查看原图
题目是将一个表中的元素正负数分成两个表,LA和LB,LA存放整数,LB中存放负数。
重要算法是判断正负数。没有别的什么难度。唯一的亮点就是忠于用上了neg指令。 打印负数的时候, 就用得上啦。
;-----------------------------------------------------
  1 title   split array,creat two new array
  2 assume  cs:code,ds:data,ss:stack
  3 data    segment
  4 array   db      2,-6,4,0,-2,4,5,-6,-5...
阅读全文 | 评论次数(0) | 浏览次数(528) | 所属类型(程序与练习)

[2010-08-09 13:24] 顺序表算法练习之:删除数组中重复元素

点击查看原图
设计思路:
第一步:用两重循环依次逐个查找相同的元素。 如果存在相同元素,用20h填充。
第二步:将重复元素位置存入pos单元
第三步:将出现重复元素的位置通过栈来实现倒序,如果不倒序的话, 在下面的前移动作中, 略显麻烦。
第四步:循环读取位置,将子串前移,实现目标。
;-----------------------------------------------------
  1 title   delete dup element in array
  2 assume  cs:code,ds:data,ss:stack
  3 data    segment
  4...
阅读全文 | 评论次数(0) | 浏览次数(545) | 所属类型(程序与练习)

[2010-08-08 11:33] 顺序表算法练习之:查找

对于给定的数据元素,如果在顺序表中能够找到与之相同的数据元素,则返回它在顺序表中的位置。如果顺序表中有多个与之相同的数据元素,则只返回第一次找到的数据元素,如果没有与之相同的数据元素,则返回失败标志。
查找运算的主要操作是比较(cmp),比较的次数与被查找元素在表中的位置有关,即与输入有关。因此,只需求出最坏情况下的时间复杂度。需要比较n次,即查找运算的时间复杂度为O(n)。

;-----------------------------------------------------
  1 title   seek element,print element's position ...
阅读全文 | 评论次数(0) | 浏览次数(517) | 所属类型(程序与练习)

[2010-08-07 21:58] 顺序表算法练习之:删除数据

删除第i(1≤i≤n)个元素的时候, 需要将第i+1个元素依次向前移动一个位置, 删除后表的长度为n-1 。
删除的主要操作是元素前移操作。移动的次数与删除位置i有关,即和输入有关。最好情况下是i=n,元素移动次数=0次;最坏情况是i=1,元素移动的次数n-1次。
;----------------------------------------------------
  1 title   erase element in array
  2 assume  cs:code,ds:data
  3 data    segment
  4 array   db      1,2,...
阅读全文 | 评论次数(0) | 浏览次数(511) | 所属类型(程序与练习)

[2010-08-07 16:48] 顺序表算法练习之:插入数据

在第i(1≤i≤n)个元素前插入一个元素时,需要将第n至第i个元素依次后移一个位置,插入后顺序表长度为n+1 。
插入运算的主要操作时元素后移操作。移动的次数与插入的位置i有关,即与输入有关。在最好情况下,i=n+1,即将输入插入到最后元素的后面,最坏情况是i=1,元素移动的次数为n,即为把数据插入到最前面。
;-----------------------------------------------------
  1 title   insert element in array
  2 assume  cs:code,ds:data
  3 data    segment ...
阅读全文 | 评论次数(0) | 浏览次数(644) | 所属类型(程序与练习)

[2010-08-06 21:26] 算法练习:打印100以内素数

点击查看原图
;----------------------------------------------------
  1 ;title  Print winthin 100 prime numbers
  2 assume  cs:code,ds:data,ss:stack
  3 data    segment
  4 tmp0    db      100 dup (0)
  5 tmp1    db      100 dup (0)
  6 divisor db      10
  7 data    ends
  8 stack   segment stack
  9   ...
阅读全文 | 评论次数(0) | 浏览次数(1253) | 所属类型(程序与练习)

[2010-08-05 10:52] 练习:两种算法的累加程序

书里的例子给出的代码是C的。刚学完汇编, 还是用汇编实现吧
求1+2+3+…+N之和
算法一:
C代码
int sum(int n)
{
int i,sum=0;
for(i=0;i<n;i++)
sum+=i;
return sum;
}
;汇编代码:
;结果放在dx中
           mov ax,1
           mov cx,10
           mov dx,0
   L:      add dx,ax    ;相当于sum+=i
           inc ax
           loop L
 ;
算法二:
C代...
阅读全文 | 评论次数(0) | 浏览次数(557) | 所属类型(程序与练习)
页码数(4):  1  2  3  4