【发布时间】:2018-06-14 22:13:30
【问题描述】:
这是我的代码,它应该以找到最小数字的方式对数组进行排序,但是当我在 8086 程序集上运行它时,我看不到任何结果或其他任何东西,但我猜问题是我的代码无法脱离循环或类似的东西,对吗? 我再次说我的代码的问题是它没有在窗口上显示任何结果,我的程序必须找到数组中第二小的数字。有人可以帮我修复它吗?
org 100h
; add your code here
DATA SEGMENT
ARR DB 5,3,7,1,9,2,6,8,4
LEN DW $-ARR
SMALL DB ?
SECOND DB ?
DATA ENDS
CODE SEGMENT
ASSUME DS:DATA CS:CODE
START:
MOV AX,DATA
MOV DS,AX
LEA SI,ARR
MOV AL,ARR[SI]
MOV SMALL,AL
MOV CX,LEN
REPEAT1:
MOV AL,ARR[SI]
CMP SMALL,AL
JL NOCHANGE
MOV SMALL,AL
NOCHANGE:
INC SI
LOOP REPEAT1
LEA SI,ARR
MOV AL,ARR[SI]
MOV SECOND,AL
MOV CX,LEN
REPEAT2:
MOV AL,ARR[SI]
CMP SECOND,AL
JL SKIP
CMP SMALL,AL
JGE SKIP
MOV SECOND,AL
SKIP:
INC SI
LOOP REPEAT2
MOV AH,4CH
INT 21H
CODE ENDS
END START
ret
【问题讨论】:
-
注释您的代码,尤其是如果您希望其他人提供帮助。另外,学习使用调试器。
-
你试过一步调试吗?
-
我不知道该怎么做
-
另外你不对结果做任何事情,当然不会打印任何内容。
-
那么我应该添加什么?
标签: arrays sorting assembly x86-16