
已解决问题
谷歌vswoyk用户在提交了关于“武汉大学汇编语言用“冒泡法”排序”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2025-02-13T02:10:47。希望大家能够帮助她。详细问题描述及疑问:期待您的答案,你无异于雪中送炭,让我感激涕零 !
详细问题描述及疑问:期待您的答案,你无异于雪中送炭,让我感激涕零 !
楼主写了那么多,而且格
下面用10个举例
DATA**GMENT
COUNTDB10,10
DATAENDS
;
CODE**GMENT
ASSUME
START:MOVAX,DATA
MOVE
MOVBL,1
LP1:CMPBL,0
JELP4
MOVCL,CO
DECCL
pushcx
LEADI,DAT
LP2:MOVAL,[DI]
CMP
JLELP
XCh**G[DI+1],AL
MO
MOVBL,
LP3:INCD
LOOPLP2
popcx
movcount,cl
JMPLP1
LP4:MOVCL,10
LEAD
SC:
MOVBh**,2
MOV
CMPAL,0;如果是正数则跳
JGENEXT
NEGAL
pushax
MOVAh**,02h**;同时显示负
M
INT21h**;就是说int21h中断将会有一个返回值
popax;以前我也出现过一样的问题,后来调试的时候才发现原来某些中断之后ax会改变
NEXT:XORAh**,Ah**
DIVCOUNT+1;除
MOVDh**,Ah**;ah是余数al是商
ADDAL,30h**
MO
MOVAh**,02h**
INT21h**;显示十位上的
MOVAL,Dh**
XORAh**,Ah**
;DIV
ADDAX,3030h**
MOVDL,A
;MOVBL,Ah**;Ah**才是所要的,故不应该再打印AL(商)值了,总之这里在处理位数的显示时有点问题
;在这里,如果是2位数可以正确显示如果是3位则不能,所以最后的125显成了<5
OUTP:MOVAh**,2
INT21h**
DECBh**
JZXT
MOVDL,BL;显示个位数
JMPOUTP
XT:DECCL
JZDONE
INCDI
JMPSC
DONE:MOVAh**,4Ch**
INT21h**
CODEENDS
ENDSTART