【发布时间】:2014-10-25 23:53:11
【问题描述】:
我正在使用 Irvine 库。
我想遍历一个 DWORD 数组,同时检查每个值是否在 j 和 k 的范围内。我的代码目前不起作用。这是我所拥有的:
INCLUDE Irvine32.inc
COMMENT !
.386
.model flat, stdcall
.stack 4096
ExitProcess PROTO, code:DWORD
DumpRegs PROTO
!
.data
myArr DWORD 1h,2h,3h,4h
prompt BYTE "Enter the value for j and k: ", 0
counter BYTE ?
.code
MAIN PROC
mov eax, 0 ; sum
; Get user vals for j and k
mov edx, OFFSET prompt
CALL WriteString
CALL ReadInt
mov ebx, eax
CALL ReadInt
mov edx, eax
CALL sumArr ; Call #1 *****
mov ebx, 5 ; j = 5
mov edx, 8 ; k = 8
CALL sumArr ; Call #2 *****
Main endP
sumArr PROC USES esi ecx edx ebx
mov counter, LENGTHOF myArr
mov esi, OFFSET myArr ; location pointer
mov ecx, LENGTHOF myArr ; size
getArr:
cmp ebx, [esi]
jae aboveEqual
add esi, TYPE myArr
aboveEqual:
cmp edx, [esi]
jbe inRange
inRange:
add eax, [esi]
LOOP getArr
CALL DumpRegs
RET
sumArr ENDP
我希望能够对数组中的每个元素进行比较。我该怎么做?
【问题讨论】:
标签: loops assembly masm irvine32