【问题标题】:Assembly program that finds second smalest value in array在数组中找到第二个最小值的汇编程序
【发布时间】: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


【解决方案1】:

我现在想知道在你的课堂上你是否应该能够输出数字而不是在运行调试器时查看寄存器值。

或者,将注释行插入到代码中以将值作为错误代码返回:

        LOOP    REPEAT2
        MOV     AH,4CH
        MOV     AL,SECOND     ;insert this line
        INT     21H
        CODE    ENDS
        END     START

组装和链接程序后,从 DOS 控制台窗口(命令提示符)运行它。假设您将其命名为“myprogram.com”。然后使用这些命令:

myprogram
echo %errorlevel%

错误级别是使用 AH=4CH 和 INT 21H 时 AL 中的值。这仅适用于单字节值,但这就是您在这种情况下所拥有的。

否则,您必须添加代码以将值转换为十进制并输出结果。如果这些是单个数字值,那么输出代码很简单:

        MOV     DL,SECOND
        ADD     DL,030H
        MOV     AH,002H
        INT     21H
        MOV     DL,00DH
        MOV     AH,002H
        INT     21H
        MOV     DL,00AH
        MOV     AH,002H
        INT     21H

或使用字符串:

SECOND  DB      ?
STRNG   DB      000H,00DH,00AH,'$'     ;insert this line
        ...
        MOV     AL,SECOND
        ADD     AL,30
        MOV     STRNG,AL
        MOV     DX,OFFSET STRNG
        MOV     AH,009H
        INT     21H

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-12-07
    • 1970-01-01
    • 1970-01-01
    • 2022-01-22
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    相关资源
    最近更新 更多