在数组中查找最小值(Intel8086)

马修

我想编写一个简单的程序来查找数组中最小值我使用的是Intel 8086架构(如果我是对的?)。问题是我对汇编语言完全陌生,好吧,我只是无法弄清楚我在代码中做错了什么,被卡住了。

最后(退出之前),我的ax寄存器不包含我的结果。
恐怕它甚至都不会放在那儿(我用Turbo Debugger工具检查寄存器的值)。

.MODEL TINY

Data SEGMENT
                        arr_len     EQU 5
                        arr         DB 07h, 02h, 03h, 10h, 12h
                        minimum     DB 255
Data ENDS

Code SEGMENT
                        ORG 100h
                        ASSUME CS:Code, DS:Data, SS:Code
Start:
                        mov ax, SEG Data
                        mov ds, ax  ;load data to ds reg    
                        mov cx, arr_len ;arr_length to counter
                        mov bx, OFFSET arr ;load first elem.
Search: 
                        inc bx
                        cmp bl, [minimum] ;compare loaded elem with min
                        jb Swap ;if bl<minimum
Swap:
                        mov minimum, bl
                        loop Search         

                        mov al, minimum ;result here?
                        mov ax, 4C00h
                        int 21h

Code ENDS
END Start

谁能给我建议这里出了什么问题?提前致谢。

菲佛尼克
  • 小型模型不需要显式设置DS。(CS = DS = ES = SS)
  • 由于BX第一次指向您的数组,因此您不应该立即对其进行递增!inc仅在循环之前执行
  • 您实际上并不是比较数组元素,而是比较数组的迭代地址的低字节。
  • 如果您随后直接通过将4C00h放入AX退出,则在AL中放入任何结果都是没有意义的。但是,使用调试器查看AL可能会起作用。

这是可以使用的版本:

Search: 
    mov al, [bx]
    cmp al, [minimum] ;compare loaded elem with min
    jnb NoSwap        ;if al>=minimum
    mov [minimum], al ;New minimum
NoSwap:
    inc bx
    loop Search

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在数组中查找最小值(Intel8086)

来自分类Dev

在数组中查找最小值

来自分类Dev

在数组中查找最小值> 0

来自分类Dev

查找值,将其放在数组中,然后在数组VBA中查找最小值

来自分类Dev

在数组Java中查找最小值和第二最小值

来自分类Dev

在数组中寻找最小值

来自分类Dev

在数组中查找最小值和最大值的有效方法

来自分类Dev

在数组C ++中查找最小值/最大值的索引

来自分类Dev

在数组Javascript中查找最小值和最大值

来自分类Dev

Java –在数组中查找最小值和最大值

来自分类Dev

在数组中查找最小值和最大值

来自分类Dev

在数组Perl中查找为最大次数的最小值

来自分类Dev

在没有Math.min的情况下在数组中查找最小值

来自分类Dev

使用LINQ在数组C#中查找重复的最小值

来自分类Dev

在数据表的行中查找最小值

来自分类Dev

在 matlab 中查找在数组或矩阵范围内计算的最小值或最大值的索引

来自分类Dev

从数组中查找最小值和最大值,最小值始终为0

来自分类Dev

从数组中查找最小值和最大值,最小值始终为0

来自分类Dev

从包含对象的数组中查找最小值的最佳方法

来自分类Dev

如何在MIPS中查找数组的最小值

来自分类Dev

JavaScript(在旋转排序数组中查找最小值)

来自分类Dev

查找数组中int数的最小值(Java)

来自分类Dev

查找数组中两个最小值的索引

来自分类Dev

数组中的最小值

来自分类Dev

Postgres-查找数组的最小值

来自分类Dev

查找python数据数组的最小值

来自分类Dev

R:在数据框中查找列列表的最大值/最小值

来自分类Dev

在数字序列中查找错过的最大值和最小值

来自分类Dev

在行组中查找最小值

Related 相关文章

热门标签

归档