組合語言(十九)之刪除陣列中的元素

2021-09-07 15:07:05 字數 1999 閱讀 6622

在陣列中刪除所有-1元素,然後輸出刪除後的長度

程式執行:

mov ax,datas ;初始化ds

mov ds,ax

mov dx,0ffffh ;要刪除的數

mov cx,link[0] ;取陣列的長度

mov si,2 ;陣列的第0個元素

mov di,-1 ;初始化移動指標的值為-1

s:mov ax,link[si]

cmp ax,dx ;判斷是否為-1

jz delete ;若是-1,則跳轉

cmp di,-1 ;若不是-1,判斷di是否有效

jz next ;若無效,跳轉

mov link[di],ax ;若有效,移動非-1內容至目的單元

add di,type link ;di指向下一單元

jmp next ;跳轉

delete:

dec link[0] ;陣列的長度減1

cmp di,-1 ;判斷di是否有效

jnz next ;若有效,跳轉

mov di,si ;若無效,儲存第乙個-1單元的偏移位址

next:

add si,type link ;索引移至下一單元

loop s

lea dx,ouput

mov ah,9

int 21h

mov ax,link[0]

call decimal

retmain endp

decimal proc near

push ax

push cx

push dx

push bx

cmp ax,0

jge no_negative

mov bx,ax

mov dl,'-'

mov ah,2

int 21h

neg bx

mov ax,bx

no_negative:

mov cx,0

mov bx,10

de:xor dx,dx

div bx

push dx

inc cx

cmp ax,0

jnz de

de1:

pop dx

add dl,30h

mov ah,2

int 21h

loop de1

pop bx

pop dx

pop cx

pop ax

retdecimal endp

codes ends

end main

彙編太難了(1) 刪除陣列元素

在附加段中,有乙個首位址為list和未經排序的字陣列,在陣列的第乙個字中,存放著該陣列的長度,陣列的首位址已存放在di暫存器中,ax暫存器中存放著乙個數。要求編制一程式,在陣列中查詢該數,如果找到了此數,則把它從陣列中刪除。datas segment list dw 10 45h,345h,45h,...

php中刪除陣列元素

users array 1 張三 2 李四 3 王五 print r users echo unset users 2 print r users echo student array 1 mike 2 tom 3 jerry 4 lucy 5 lili array splice student,3...

如何刪除陣列中的元素

php中的陣列要新增元素非常簡單,直接用賦值就行了,陣列的key會自動增加,但是要刪除陣列中的元素呢?你想過嗎?是不是很少遇到?我近日在處理乙個購物籃程式時遇到了要刪除陣列中元素的問題,尋找了半天,終於找到了刪除陣列的方法,其實很簡單.開始我參照一篇文章 字串陣列,刪除陣列元素 oso中有 中的方法...