汇编语言程序设计,6个数排序,mov cx,len 报错了 麻烦高手指点哪里错了??

[复制链接]
查看11 | 回复4 | 2011-7-1 05:48:34 | 显示全部楼层 |阅读模式
;multi-segmentexecutablefiletemplate.

datasegment
;addyourdatahere!
lendb6
numdb34,9,15,98,21,55
pkeydb\"pressanykey...$\"
ends

stacksegment
dw128dup(0)
ends

codesegment
start:
setsegmentregisters:
movax,data
movds,ax
;moves,ax

movcx,len
deccx

lop1:movdx,cx
movsi,0

lop2:moval,num[si]
cmpal,num[si1]
jaecont
xchgal,num[si1]
movnum[si],al

cont:incsi
looplop2
movcx,dx
looplop1

movcx,len
movsi,0
next:movdl,num[si]
movah,5
int21h
incsi
loopnext

movah,4ch
int21h
;addyourcodehere

leadx,pkey
movah,9
int21h;outputstringatds:dx

;waitforanykey....
movah,1
int21h

movax,4c00h;exittooperatingsystem.
int21h
ends

endstart;setentrypointandstoptheassembler.
回复

使用道具 举报

千问 | 2011-7-1 05:48:34 | 显示全部楼层
movcx,len
八位变量不能和十六位寄存器配对,应该是
movcl,len
movch,0









<h4class=\"ask\">追问


后面打印排序结果怎么修改呢,打印结果好像是错的
回复

使用道具 举报

千问 | 2011-7-1 05:48:34 | 显示全部楼层
...我想想,int21h,ah=5输出的那个不是数字,是acsii吧
回复

使用道具 举报

千问 | 2011-7-1 05:48:34 | 显示全部楼层
整个next那部分我想调用指令显示排序后的数字,是不是调用了错误的指令呢。劳驾修改一下嘛
回复

使用道具 举报

千问 | 2011-7-1 05:48:34 | 显示全部楼层
这个,得写一个字模块哦,就是分离十进制数输出的那种
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行