[怎么做啊?!二编程题 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...+阅读
CODE SEGMENT ASSUME CS:CODE ORG 100H START: PUSH CS POP DS PUSH CS POP ES CALL INPUTNUM MOV AX,NUM MOV N,AX CALL BUBBLESORT MOV AH,2 MOV DL,10 INT 21H MOV DL,13 INT 21H MOV CX,N LEA SI,ARRAY 32313133353236313431303231363533e4b893e5b19e31333361323464M1: MOV AX,[SI] CALL DISPAX INC SI INC SI LOOP M1 MOV AH,4CH INT 21H N DW ?;============================================ BUBBLESORT PROC NEAR LEA BX,ARRAY LEA SI,NUM MOV AX,SI SUB AX,BX ROR AX,1 MOV WORD PTR[NUM],AX DEC WORD PTR[NUM] MOV WORD PTR[I],0 ; 以下采用冒泡排序 LEA DI,ARRAY LINE1: INC WORD PTR[I] MOV AX,WORD PTR[I] CMP AX,WORD PTR[NUM] JG LINE3 MOV WORD PTR[J],0 LINE2: INC WORD PTR[J] MOV AX,WORD PTR[NUM] INC AX SUB AX,WORD PTR[I] CMP WORD PTR[J],AX JG LINE1 MOV BX,WORD PTR[J] ROL BX,1 MOV AX,WORD PTR[DI][BX-2] CMP AX,WORD PTR[DI][BX] JNC LINE2 MOV CX,WORD PTR[DI][BX] MOV WORD PTR[DI][BX],AX MOV WORD PTR[DI][BX-2],CX JMP LINE2 LINE3: RET I DW ? J DW ? BUBBLESORT ENDP;===============================================; 键盘输入数值数组子程序(数组名为array,元素个数存放在num中) INPUTNUM PROC NEAR ; 输入的数据以一个空格分隔,以回车符结束输入 LEA DI,ARRAY ;将数组第一个元素的有效地址置入DI MOV WORD PTR[NUM],0 STIN: MOV AX,0 PUSH AX AGAIN1: MOV AH,1 INT 21H MOV BYTE PTR[CHAR],AL CMP AL,13 JE LINE0 CMP AL,' ' JE LINE0 SUB AL,30H MOV AH,0 MOV SI,AX POP AX MOV CL,10 MOV CH,0 MUL CX ADD AX,SI PUSH AX JMP AGAIN1 LINE0: POP AX MOV WORD PTR[DI],AX INC WORD PTR[NUM] CMP BYTE PTR[CHAR],13 JE STINEND INC DI INC DI JMP STIN STINEND: RET ARRAY DW 100 DUP(0) NUM DW 0 CHAR DB ? INPUTNUM ENDP;=============================================== DISPAX PROC NEAR PUSH BX PUSH CX PUSH DX PUSH SI PUSH DS PUSH CS POP DS PUSH AX MOV AH,2 MOV DL,32 INT 21H POP AX MOV BYTE PTR NZ,0 PUSH AX LEA SI,DIVARR MOV CX,5 1: POP AX MOV DX,0 MOV BX,[SI] DIV BX PUSH DX CMP AL,0 JNE 2 CMP BYTE PTR NZ,1 JE 2 CMP CX,1 JE 2 MOV DL,20H JMP 3 2: ADD AL,30H MOV DL,AL MOV BYTE PTR NZ,1 3: MOV AH,2 INT 21H INC SI INC SI LOOP 1 POP DX POP DS POP SI POP DX POP CX POP BX RET DIVARR DW 10000,1000,100,10,1 NZ DB 0 DISPAX ENDP;============================================= CODE ENDS END START
以下为关联文档:
汇编语言子程序调用简单点说,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...
如何使用汇编语言实现冒泡排序内存以BUF单元开始有若干单字节有符号数,编程实现从大到小排序并以十进制输出。 code segment assume cs:code org 100h start:jmp begin buf db 3,4,5,0,-1,-2,-3 n dw $-bu...
汇编语言冒泡排序问题data segment;定义数据段 org 2000 arr db 5,2,1,0,2,3,8,6,5,9 count equ $-arr data ends code segment;定义代码段 assume cs:code,ds:data start: ;初始化待排序列 lea si,...
急求汇编语言进行冒泡法排序的程序例子!下面是冒泡法排序的源程序(已改进): dseg segment array db 0feh,86h,95h,21h,90h count equ $-array dseg ends cseg segment assume ds:dseg,cs:cseg start: mov ax,dseg mov...
关于冒泡排序的问题汇编高手请进!模仿下面自己冒泡排序吧 用冒泡排序法对数据列31,17,34,4,22,18,29,1进行从小到大排序,经过三趟排序后得到的数据列是___ 就是通过逐次比较相邻的两个数据的大小来完成。 原...
汇编语言冒泡排序程序 10个数//排序从小到大 int a[] = new int[] { 97, 78, -1, 0, 32, 14, 21, 27, -20, 99 }; int temp = 0; for (int i = 0; i < a.length; i++) { for (int j = 0; j <a.length -...