当前位置:三九宝宝网 → 宝宝教育 → 教学论文 → 正文

如何使用汇编语言实现冒泡排序

更新:01-06 整理:39baobao.com
字体:

[用汇编语言编程实现以下功能]1.mov cl,2 shl ax,cl 2.sub ax,bx 3.and ax,cx 4.xchg bx,ax 5.mov al,9 add al,8 sub al,7 mov x,al 6.code segment assume cs:code start:mov ah,1 int 21h sub al,20h...+阅读

内存以BUF单元开始有若干单字节有符号数,编程实现从大到小排序并以十进制输出。 code segment assume cs:code org 100h start:jmp begin buf db 3,4,5,0,-1,-2,-3 n dw $-buf begin:push cs pop ds push cs pop es lea si,buf mov cx,n call sort mov cx,n lea si,buf 1: lodsb cbw call dispaxs loop 1 mov ah,4ch int 21h ;============================================= ; 字节数组排序(冒泡排序) sort proc near ; 数组元素个数置入cx,首地址置入 si push ax push cx push dx push si push di pushf push cx pop dx dec dx sortl1: mov cx,dx mov di,si sortl2: mov al,[di+1] cmp al,[di] jl sortnext ; 无符号数排序改为 jb xchg al,[di] mov [di+1],al sortnext: inc di loop sortl2 dec dx jnz sortl1 popf pop di pop si pop dx pop cx pop ax ret sort endp ;==================================================== ; 将要显示的有符号数置于 ax 中 DISPAXS PROC NEAR PUSH AX PUSH BX PUSH CX PUSH DX PUSH SI PUSH DI PUSH BP PUSH DS PUSH ES PUSHF PUSH CS POP DS PUSH CS POP ES MOV CX,6 LEA DI,DISPAXSS DISPAXS: MOV BYTE PTR [DI],32 INC DI LOOP DISPAXS PUSH AX MOV DL,32 MOV AH,2 INT 21H POP AX MOV BYTE PTR NZS,0 MOV BYTE PTR SIGNS,0 CMP AX,0 JGE DISPAXS0 MOV BYTE PTR SIGNS,1 NEG AX DISPAXS0: PUSH AX LEA SI,DIVARRS LEA DI,DISPAXSS INC DI MOV CX,5 DISPAXS1: POP AX MOV DX,0 MOV BX,[SI] DIV BX PUSH DX CMP AL,0 JNE DISPAXS2 CMP BYTE PTR NZS,1 JE DISPAXS2 CMP CX,1 JE DISPAXS2 MOV DL,20H JMP DISPAXS3 DISPAXS2: ADD AL,30H MOV DL,AL MOV BYTE PTR NZS,1 DISPAXS3: MOV BYTE PTR[DI],DL INC SI INC SI INC DI LOOP DISPAXS1 POP DX CMP BYTE PTR SIGNS,1 JNE DISPAXS6 LEA SI,DISPAXSS ADD SI,5 DISPAXS4: CMP BYTE PTR [SI],32 JE DISPAXS5 DEC SI JMP DISPAXS4 DISPAXS5: MOV BYTE PTR [SI],'-' DISPAXS6: LEA DX,DISPAXSS MOV AH,9 INT 21H POPF POP ES POP DS POP BP POP DI POP SI POP DX POP CX POP BX POP AX RET DIVARRS DW 10000,1000,100,10,1 NZS DB 0 SIGNS DB 0 DISPAXSS DB 32,32,32,32,32,32,'$' DISPAXS ENDP ;================================================ code ends end start

本文地址:https://www.39baobao.com/show/29_23603.html

以上内容来自互联网,请自行判断内容的正确性。若本站收录的信息无意侵犯了贵司版权,请联系我们,我们会及时处理和回复,谢谢.

以下为关联文档:

汇编语言程序实现一下C效果mov ax, m mov dx, n cmp ax, dx je label1 jl label2 sub ax, dx jmp label1 label2: sub dx, ax label2: label1: 有点小错误,修改了 mov ax, m mov dx, n cmp ax, dx je l...

汇编语言实现小数的计算单片机好像没有浮点数的计算指令吧? 我想到一个不太好的方法,你凑合一下吧 V0应该是整数吧? 这样现将V0乘上10,再减去4,然再在乘上100000,最后除以19530 这样就全部转化成整数的运...

汇编语言编写一个程序DATA SEGMENT; CR db 0dh,0ah,'$' SSP db 20h,'$' string1 db 'plese input the number:$' string2 db 'the number is(H):$' string3 db 'the number is(B):$' data1 dw 0...

汇编语言实现以下输出; eg0000.asm in Windows Console include io32.inc .data in_msg4 byte '请选择0-3并按回车确定:',0 in_msg0 byte '您选择的频率为f0,谢谢!',0 in_msg1 byte '您选择的频率为f1...

怎么做啊?!二编程题 1用汇编语言编写程序编程实现以下功stud struc name db ' ' eng db ?math db ?comp db ?phy db ?sum dw ?aver db ?stud ends code segment assume cs:code org 100h start:jmp bbb studs studstudstudstudbbb...

汇编语言子程序调用简单点说,call指令在跳转前保存当前指令地址,而jmp一类的指令不保存当前指令的地址。 详细点说: call指令在跳转前会在栈中保存当前的程序计数器(IP)的值(有必要的话还要保存CS),保...

汇编语言做冒泡法排序TITLE BubbleSort Procedure INCLUDE Irvine32.inc .code BubbleSort PROC USES eax ecx esi, pArray:PTR DWORD, Count:DWORD mov ecx,Count dec ecx L1: push ecx mov esi...

怎么用汇编语言写冒泡排序啊;===缓冲区定义例子=== BUF DB '256489713' N EQU $-BUF ;===起泡排序代码例子=== lea si,BUF ;缓冲区地址 mov cx,N ;缓冲区中要排序的数值个数 sss_lp1: dec cx jz sss_out pu...

汇编语言用冒泡法排序楼主写了那么多,而且格式还有差别,不知道具体是几个 下面用10个举例 DATA SEGMENT DAT DB 20,-10,80,-5,-70,-9,125,-15,0,40 COUNT DB 10,10 DATA ENDS ; CODE SEGMENT ASSUM...