汇编基础习题3

题目:有一个首地址为MEM的100D字数组,试编制程序删除数组中所有为零的项,并将其后续项向前压缩,最后将数组中剩余部分补上零。

 

 
  
1 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
2 ; Author:
3 ; comment: Blank
4 ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
5 ; input code
6  
7   ; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
8 sta segment
9 dw 40 dup(?)
10 top label word
11 sta ends
12
13 data segment
14 mem dw 10 , 35 , 0 , 12 , 71 , 63 , 0 , 8 , 9 , 110 , 50
15 num dw ?
16 data ends
17
18 code segment
19 assume cs: code, ds: data, ss: sta
20 start:
21 mov ax,sta
22 mov ss,ax
23 lea sp,top
24 mov ax,data
25 mov ds,ax
26
27 mov num, 0
28 mov si, 0
29 mov cx,mem[si]
30 l0:
31 add si, 2
32 cmp mem[si], 0
33 jne l10
34 push si
35 dec cx
36 inc num
37 push cx
38 lx:
39 mov ax,mem[si+ 2 ]
40 mov mem[si],ax
41 add si, 2
42 loop lx
43 pop cx
44 pop si
45 sub si, 2
46 jne l0
47
48 l10:
49 loop l0
50 mov cx,num
51 ld: add si, 2
52 mov mem[si], 0
53 loop ld
54
55 mov ah,4ch
56 int 21h
57
58 code ends
59 end start
60

 

转载于:https://www.cnblogs.com/SCAU_que/articles/1760663.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值