现在的位置: 首页 > 综合 > 正文

汇编学习笔记(6)

2018年04月15日 ⁄ 综合 ⁄ 共 611字 ⁄ 字号 评论关闭

题目描述:Link指向一个线性表,其中的首单元保存线性表的长度,编写程序,将该线性表中内容为0FFFFH的项删除。

分析:从第一个元素开始逐个比较,找到0FFFFH删除并将长度减1。

代码:

data segment
	link dw  10,1,0FFFFH,2,3,0FFFFH,0FFFFH,4,5,6,0FFFFH
data ends
code segment
	assume cs:code,ds:data
start:
     mov ax,data
     mov ds,ax
     
     mov bx,2
  
     
     
  loop1:
         mov ax,link
         mov dl,2
         mul dl
         mov si,ax     ;确定末位元素
         cmp bx,si
         ja output
        cmp link[bx],0FFFFH
        jz delete
        add bx,2
         jmp loop1
        
     
  delete:
         mov di,bx
         mov ax,link
         mov dl,2
         mul dl
         mov si,ax     ;确定末位元素
   loop2:  
         cmp di,si
         jae next
         mov ax,link[di+2]     ;后面元素往前移动
         mov link[di],ax
         add di,2
         jmp loop2
        
   next:
         dec link
         jmp loop1
         
   output:
         mov cx,link
         mov bx,2
   
   loop3:                       ;输出
         mov dx,link[bx]
         add dx,30H
         mov ah,02H
         int 21h
         mov ah,02h
         mov dl,' '
         int 21h
         add bx,2
         loop loop3
         
   mov ah,4CH
   int 21h
   
code ends
end start

抱歉!评论已关闭.