读书人

菜鸟的简单有关问题~帮忙看下~

发布时间: 2012-03-07 09:13:51 作者: rapoo

初学者的简单问题~~~帮忙看下~~~
就是把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

读书人网 >汇编语言

热点推荐