当前位置:编程学习 > 汇编语言 >>

汇编语言程序

DATAS SEGMENT x dw ? array_head dw 3,5,15,23,37,49,52,65,78,99 array_end dw 105 n dw 32 DATAS ENDS CODES SEGMENT main proc far ASSUME CS:CODES,DS:DATAS START: MOV AX,DATAS MOV DS,AX mov ax,datas mov ds,ax mov cx,11 call print mov ax,n mov x,0ffffh mov si,0 compare: cmp array_end[si],ax jle insert mov bx,array_end[si] mov array_end[si+2],bx sub si,2 jmp short compare insert: mov array_end[si+2],ax mov cx,12 call print ret main endp print proc near pop cx push ax push dx push si mov si,0 again: mov ax,array_head[si] mov dl,10 div dl add al,30h add ah,30h mov dh,ah mov dl,al mov ah,2 int 21h mov al,dh mov dl,al mov ah,2 int 21h mov dl,08h mov ah,2 int 21h add si,2 loop again pop si pop dx pop ax ret print endp CODES ENDS END START
补充:数组插入一个元素,调用打印函数,插入前打印一次,插入后打印一次
追问:向有序数组中插入一个元素,调用打印函数,插入前打印一次,插入后打印一次
答案:call 调用函数时将sp压入栈,故pop出来的不是cx了
其他:不明白 数组插入一个元素,....
----
这个元素,那来的?用键盘输入吗? 有时间可以帮你写写  

关键是需要把其他元素移位,即改变地址下标,然后插入元素。
插入元素应该是有顺序需求的的,就是插入后元素也是按顺序排列的。

分给我吧 我帮你写  50分心动了 呵呵 

上一个:汇编语言判断寻址方式
下一个:用汇编语言编流水灯,有8个LED灯,LED1~LED8 灯按顺序点亮,每个等亮一秒转到下个灯,一直循环亮

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,