就是把arr数组中的偶数存到arreven中去~~~怎么不行啊~~~指点下啊~~
data segment
arr dw 2,5,8,3,9,1,9,44,55,23,78,88
arreven dw 16 dup(?)
data ends
code segment
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov si,offset arr
mov bx,offset arreven
mov cx,16
begin:
test [si],01h
jz next
add si,2
loop begin
jmp exit
next:
mov dx,[si]
mov [bx],dx
add bx,2
exit: mov ax,4c00h
int 21h
code ends
end start
------解决方案--------------------------------------------------------
建議樓主自己再仔細分析一下:
begin:
test [si],01h
jz next
add si,2
loop begin
jmp exit
這一段代碼流程!!
------解决方案--------------------------------------------------------
paullbm(莫取网名)说的是这个意思:
begin:
test [si],01h
jz next
add si,2
loop begin
jmp exit
如果一个二进制数的第零位是0,那么这个数就是偶数.这时test [si],01h结果为0,跳转到NEXT,NEXT执行完后,你的程序就直接结束了,没有执行LOOP循环.
begin:
test [si],01h
jz next
add si,2
jmp L1
next:
mov dx,[si]
mov [bx],dx
add bx,2
L1: loop begin
jmp exit