学习笔记(7)--对“一道基本的汇编语言题目”的改进

来源:互联网 发布:万达复利理财网络 编辑:程序博客网 时间:2024/06/01 08:35

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


代码:


data segmentdata1 dw 1,0,2,3,0,0,4,5,6,0        dw 1,0,2,3,0,0,4,5,6,0        dw 1,0,2,3,0,0,4,5,6,0        dw 1,0,2,3,0,0,4,5,6,0        dw 1,0,2,3,0,0,4,5,6,0        dw 1,0,2,3,0,0,4,5,6,0        dw 1,0,2,3,0,0,4,5,6,0        dw 1,0,2,3,0,0,4,5,6,0        dw 1,0,2,3,0,0,4,5,6,0        dw 1,0,2,3,0,0,4,5,6,0  data ends code segmentassume cs:code, ds:datastart:      mov ax,data      mov ds,ax                  mov cx,100      mov bx,0      mov si,(100-1)*2           loop1:         cmp data1[bx],0         jz delete         add bx,2         loop loop1         jmp output  delete:         mov di,bx   loop2:         cmp di,si         jae next         mov ax,data1[di+2]         mov data1[di],ax         add di,2         jmp loop2            next:         mov data1[si],word ptr 0         loop loop1            output:          mov cx,100          mov bx,0   loop3:          mov dx,data1[bx]          add dx,30H          mov ah,02H          int 21h          add bx,2          mov dl,' '          mov ah,02h          int 21h          loop loop3                         mov ah,4CH     int 21h     code endsend start

结果


在第一次写的这道题,是比较乱的,现在从新设计了一下。



原创粉丝点击