在陣列中刪除所有-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中有 中的方法...