DATAS SEGMENT
buf db 'bacegd$'
count equ $-buf ;此处输入数据段代码
DATAS ENDS
STACKS SEGMENT
;此处输入堆栈段代码
STACKS ENDS
CODES SEGMENT
ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
MOV AX,DATAS
MOV DS,AX
lea si,buf
mov cx,count
dec cx
lp1:mov di,cx
lp2:mov ax,[si]
CMP AX,[si+1]
JLE NEXT
XCHG AX, [si+1]
MOV [si], AX
next:
inc si
loop lp2
mov cx,di
loop lp1
mov dx,ax
mov ah,9
int 21h
;此处输入代码段代码
MOV AH,4CH
INT 21H
CODES ENDS
END START
结果稀奇古怪,求大神教
这个汇编的排序是没问题的。。。
看别人的程序太麻烦了。。我就直接编了一个
排序没问题,你当做参考吧。。不知道符合你的要求不
能给讲讲为什么这么编吗
比如说MOV DI,CX是什么意思
汇编语言:从键盘输入一串小写字符串,将其按a-z顺序排列后,大写输出到...
include <string.h> define MaxSize 50 void TurnChar(char a[]);void SortChar(char a[]);void main(){ char a[MaxSize];printf("请输入字符串:");gets(a);SortChar(a);TurnChar(a);printf("\\n排序后的字符串为:");puts(a);} void TurnChar(char a[]){ char *p;p=a;while...
汇编语言 如何倒序输出hello world
三个方法:1、定义字符串时倒序。2、一个一个字符发,寻址时偏移量指向字符串末端,发一个字符偏移量减一。3、倒序迁移字符串到内存再发送。
汇编语言字符窜存储
字符串在内存中以字节(byte)为单位存储,字符串包含多少字符就需要多少byte来存。汇编中定义一个字符串如下:myString BYTE "ABCDEF",0 ;常以0作为字符串的结尾 内存中存储顺序如图所示,从箭头开始,依次向下。假设第一个地址是0000h,下一个byte的地址就是00001h,依次类推。内存中存储的是字符的...
汇编语言 输入字符串,不知道字符个数所以定义了DB ?,但后来直接把?mov...
在汇编语言中,使用DB(Define Byte)指令来为一个或多个字节的数据分配内存空间,该指令后面紧跟着的是需要存储的字节数据。在输入字符串时,可以使用DB指令来定义一个字符数组,并在程序中循环读取输入字符,直到读到回车符为止。当需要遍历字符串时,可以使用MOV指令将字符数组的起始地址存储到CL寄存器中...
从键盘输入一个字符串在下一行逆序输出用汇编语言如何实现
;可以这样考虑:;1.利用dos 21h中断的A号功能,读取一个字符串,这样可以取得字符串的长度N。;2.mov cx,N,利用Loop指令,倒序输出字符串。;代码如下:; multi-segment executable file template.data segment buf0 db 255 ;字符串最大长度 db 0 ;输入的字符串的实际长度 buf1 db ...
汇编语言程序设计中输出一串字符串时怎么换行?
在字符串后面加上换行就行了 如:STRING DB 'MY NAME IS...',13,10,'$'就OK了 想另外换的话 MOV DX,13 MOV AH,2 INT 21H MOV DX,10 MOV AH,2 INT 21H
用汇编语言输入字符串倒序输出并用大写显示
loop1:int 21h ;从标准控制台输入一个字符 cmp al,24H ;jz endInput ;如果是$.输入结束 push ax ;将输入的字符压入堆栈 inc cx ;计数,输入了一个字符 jmp loop1 ;以下部分为输出 endInput:or cx,cx jz endProcess ;除了"$"没有输入别的,转结束,...
汇编语言中如何找出字符串的第三个字符
1、首先输入字符串和关键字然后查找。2、其次有相同的输出“Match!”。3、最后没有相同的输出“No Match”。
用汇编语言编写完整程序,从键盘读入一个符号串,吧各符号颠倒顺序后放回...
int 16h ;用键盘读入一个字符到al cmp al,'1'je next br outstr<你选择了重新输入,请按提示进行操作> br jmp start ;如果用户输入的为数字1,则继续执行下面的代码,否则重新执行上面的代码 ;下面进行串序颠倒 next: mov di,dx ;使di指向串头 lea si,ds:1[bx];si指向串尾 xor cx,cx...
用汇编语言显示这样的数字组合:第一排是123456789第一列123456789然后从...
程序就很简单了,显示一个字符串,就完成了要求。程序如下:DATA SEGMENT MSG1 DB 10, 13 DB ' 0123456789', 10, 13 DB ' 11', 10, 13 DB ' 2 2', 10, 13 DB ' 3 3', 10, 13 DB ' 4 4', 10, 13 DB ' 5 5', 10, 13 DB ' ...