- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编语言程序
排序
对输入的多个数字进行排序。
要求:
a)所有数字从键盘输入;
b)数字中至少包含一个大于 10 的数字;
c)排好序的数字以十进制形式在屏幕显示输出。
data segment
shuzi_w db 0
;shuzi_q db 0
;shuzi_b db 0
;shuzi_s db 0
;shuzi_g db 0 ;将排序好的数字显示出来 ,需要每一位转换成 ASCII
码
key DW 100 dup(0) ;输入的数的存放位置
buffer dw 0 ; 输入数字的暂存位置 输入的数字大于 10 需要缓冲
n db 1 ; 总共输入的数字个数 注意从 1 开始
n1 db 1
loop
循环原因
; add your data here!
pkey db the programmer has been done .. ,0dh,0ah,24h
string db please input data: ,0dh,0ah,24h
string1 db 0dh,0dh,0dh,0dh,output: ,0dh,0ah,$
kongge db 0dh, 0ah,24h
ends
stack segment
dw 128 dup(0)
ends
code segment
start:
set segment registers: xor ax,ax
push ax
mov ax, data
mov ds, ax
mov es, ax
lea dx , string
mov ah, 09h
int 21h
;显示请输入数据
mov di , offset key
mov ax , 0
mov buffer,ax
biaohao1:
;程序输入处
mov ah,08h
;键盘输入但不显示
int 21h
;
输入保存在 AL
中
cmp al,0dh;
输入是回车,直接结束输入
jz biaohao4
cmp al,0
;当输入的数在 0 到 9 中间时 输入的是 ASCII 码
jb
biaohao2
;不跳转否则跳转
cmp al,9
ja
biaohao2
;若输入的数在
0到 9之间时
mov
ah,2
mov dl,al
;显示此数
int 21h
sub al,30h
mov ah,0
push ax ; 保存刚输入的数字
mov bx,buffer
mov ax,10
mul bx
;ax=10*buffer
pop bx ;
将上面保存的
ax 的值给 bx
add ax,bx
;ax=10*buffer+bx( 之前的 ax)
输入的数字大于 10
mov buffer,ax ; 将 ax 的值给 buf
mov [di],ax ; 若输入 11,循环第一次输入是
1,第二次重输入 12
jmp biaohao1;
输入大于
10 的数字的下一位
biaohao2:
;输入数字不是
0 到 9
cmp al,20h
;输入是否是空格
je biaohao3
;是的话跳出循环
jmp biaohao1
; 不是的话继续输入下一位
biaohao3: ;是空格表示输入下一个数字
call konggexianshi ; 屏幕上显示空格
add di,2 ; 修改 di 指针,输入下一个数字
inc n ;输入的数字个数加一
mov ax,0
mov buffer,ax ; 初始化
jmp biaohao1; 继续输入下一个数字
biaohao4:
mov al,n
cmp al,0
jz qw ;没有输入数字就直接回车,结束程序
call konggexianshi
call paixu
;数字显示部分
push dx
push ax
lea dx,string1
mov ah ,09h
int 21h
pop ax
pop dx
mov cx,0
mov cl, n
mov bx,offset key
disp:
mov dx,0; chushihua
mov ax,[bx]
call shujuxianshi
call konggexianshi
inc bx
inc bx
loop disp
;==================================
paixu proc near
mov al,n
mov n1,al; 外循环、
loop1:
mov cl,n
mov ch,0; 内循环
dec cx
mov bx,offset key
loop2:
mov ax,[bx]
cmp ax,[bx+2]
jna loop3 ;ax 不大于 bx+2 ,不交换
push ax
mov ax,[bx+2]
mov [bx],ax
pop ax
原创力文档


文档评论(0)