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

IBMPC汇编语言求排序程序

更新:12-25 整理:39baobao.com
字体:

[汇编语言试题帮忙]BASETAB DW 11,22,,33,44,55;定义双字变量 NUMTAB DB 10,20,30,40,50;定义单字节变量 INPUTTAB DW 1,2,3,4;定义双字变量 (1)MOV BX ,OFFSET ;BASETAB偏移地址为0==>应该是置...+阅读

data segment num dw 20 dup(?);存输入数列 i dw 0 ;数列个数 max dw ? min dw ? char1 db 'The maximum number is:$' char2 db 0dh,'The minimum number is:$' char3 db 0dh,'The order of the numbers is:',0ah,0dh,'$' rec db 5 dup(?) ;输出缓存 data ends code segment main proc far assume cs:code,ds:data start: push ds mov ax,data mov ds,ax mov si,0 mov bx,0 input: mov ah,01h int 21h cmp al,20h;遇到空格写数据 jz write1 cmp al,0dh;遇到回车写最后一个数据 jz write2 sub al,30h mov cl,al mov ch,00h mov ax,bx mov bx,0ah mul bx mov bx,ax add bx,cx jmp input write1: ;write the numbers before Space mov [num+si],bx add si,2 inc i mov bx,0 jmp input write2: ;write the last one number before Enter mov [num+si],bx add si,2 inc i mov dl,0ah mov ah,02h int 21h beforemax: mov bx,0 mov cx,i dec cx mov ax,[num+bx] maximum: add bx,2 cmp ax,[num+bx] jnb nextmax mov ax,[num+bx] nextmax: loop maximum mov max,ax beforemin: mov bx,0 mov cx,i dec cx mov ax,[num+bx] minimum: add bx,2 cmp ax,[num+bx] jbe nextmin mov ax,[num+bx] nextmin: loop minimum mov min,ax beforeorder: mov cx,i dec cx loop1: mov di,cx mov bx,0 loop2: mov ax,num[bx] cmp ax,num[bx+2] jbe continue xchg ax,num[bx+2] mov num[bx],ax continue: add bx,2 loop loop2 mov cx,di loop loop1 initmax: ;changemax初始化 lea dx,char1 mov ah,09h int 21h mov ax,max mov bx,10 mov si,4 changemax: ;二进制->BCD mov dx,0 div bx mov [rec+si],dl dec si cmp ax,0 ja changemax outputmax: ;输出(从initmax开始,做预备工作) inc si mov dl,[rec+si] add dl,30h mov ah,02h int 21h cmp si,4 jb outputmax mov dl,0ah mov ah,02h int 21h initmin: ;changemin初始化 lea dx,char2 mov ah,09h int 21h mov ax,min mov bx,10 mov si,4 changemin: ;二进制->BCD mov dx,0 div bx mov [rec+si],dl dec si cmp ax,0 ja changemin outputmin: ;输出(从initmin开始,做预备工作) inc si mov dl,[rec+si] add dl,30h mov ah,02h int 21h cmp si,4 jb outputmin mov dl,0ah mov ah,02h int 21h initnum: ;changenum初始化 lea dx,char3 mov ah,09h int 21h mov cx,i mov di,0 loopnum: mov ax,[num+di] add di,2 mov bx,10 mov si,4 changenum: ;二进制->BCD mov dx,0 div bx mov [rec+si],dl dec si cmp ax,0 ja changenum outputnum: ;输出(从initnum开始,做预备工作) inc si mov dl,[rec+si] add dl,30h mov ah,02h int 21h cmp si,4 jb outputnum mov dl,20h mov ah,02h int 21h loop loopnum stop: mov ah,4ch int 21h main endp code ends end start 请注意我的是无符号数的,你稍微改改应该就行了,最近做课程设计,比较忙,所以没空帮你改 另外,我的输入方式是一个数后空格再输入一个数,最后一个数按回车,你如果不习惯也可以改成输入一个数后回车,按其他字符结束

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

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

以下为关联文档:

汇编语言程序题 21. DAI DB 83H,72H,61H,94H,5AH MOV CX,WORD PTR DAI AND CX,0FH MOV AL,DAI+3 SHL AL,CL 上述指令序列执行后,AL=_____A0____,CL=_____03_____。 2.STRING DB 'COMPUTER','$...

C语言字母排序问题#include#include/*string包含gets,puts,strlen函数*/ void main() { char n[500];/*定义具有五百个字符的数组n,可以根据字符串的长度适当调整*/ int i,j,x,temp; printf("输入...

C语言对一个字符串中字母的排序问题#include #include #include int vowel(char *, char *); main() { char input[100]; char output[100]; scanf("%s",input); printf("input is %s\n", input); vowel(input, ou...

用C语言编写一个将若干单词按字母排序的程序请各位高手帮忙//--------------------------------------------------------------------------- #include <stdio.h> #include <stdlib.h> #include <ctype.h> #define FILENAME "c:\\a.t...

C语言 26个字母的冒泡排序从Z到A冒泡排序,按照你说的亲自写好了 你看下满意吗? #include <stdio.h> #include <stdlib.h> #include <string.h> void BubbleSort(char *pData, int Count) { int i, j, f...

C语言由键盘输入十个整数按从大到小和从小到大分别输出排序这是你需要的东西!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! #include<stdio.h> void main() { int a[10]={0},i,j,temp; printf("请输入10个数字\n"); for (i=0;i<10;i++) { scanf("%d",&a[i]); } for (i=0;...

C语言选择法排序任意输入十个数:从大到小从小到大#include "stdlib.h" #include "stdio.h" void select_sort(int data[],int start_index,int data_num) {//start_index:数组开始的下标 data_num:数据的数目 int temp; int min_i...

C语言将10个数按从大到小排序帮忙看看拿哪错了 include#include<stdio.h> int main() { float arr[10],x; int i,j; for(i=0;i<10;i++) { scanf("%f",&arr[i]); } for(i=0;i<10;i++) { for(j=9;j>i;j--) { if(arr[i]<arr[j]) { x=a...

求单片机汇编语言排序程序哪位高手帮帮忙呀ORG 0000H LJMP 2000H ORG 2000H ;原址排序 ;比较片内RAM30H,31H,32H三个单元数的大小 ;并把数据按照从大到小的顺序又存入30H,31H,32H单元中 MAIN: MOV SP,#80H MOV R2,#2 ;假...