比较8086中数组的元素

时间:2014-05-01 06:23:52

标签: arrays assembly x86-16

我需要将数组的第一个元素与最后一个元素进行比较,依此类推。这就像我有一个数组A [9](大小为10)。所以我需要将A [0]与A [9]进行比较,如果A [0]> [9]然后我需要减去它们将它存储在另一个数组中。这个过程继续进行A [1]到A [8],A [2]到A [7]直到它达到A [4]到A [5] 我把程序分解为C,但我真的不知道如何用汇编语言来处理它。

比较两个不同的变量更容易。但是,如果有人能告诉我如何比较同一阵列的不同元素,那将会很有帮助。感谢。

1 个答案:

答案 0 :(得分:0)

你必须简单地将“di”移动到数组的最后一个索引并将“si”指向数组的第一个索引 然后你必须通过解除引用运算符[]比较si和di的内容并增加si并减少di 例如: 。数据 数组db 1,2,3,4,5,6 。码 mov ax,@ data mov dx,ax

mov si,offset array

mov di,offset array

添加di,5

di现在指向你也可以做的最后一个索引;如果数组被视为输入并且非常大,则使用循环 mov cx,6

LOOP1:

mov al,[si]

cmp al,[di]

;如果这些值等于不等于;或高于或低于等等,您想要做的条件

inc si

dec di

循环loop1

出口:

mov啊,4ch

int 21h