主题:[讨论]一个最小偶数的小问题
253020645
[专家分:0] 发布于 2006-11-09 17:33:00
5.7编制一个汇编语言程序,求出首地址为DATA的100D字数组中的最小偶数,并把它放在AX中。由于方便我只用4个数,不过进debug时发现ax=4D00,奇怪了
datarea segment
data dw 5h,6h,7h,8h
datarea ends
code segment
main proc far
assume cs:code,ds:datarea
start:
mov cx,04h
mov si,0
mov bx, data[si]
mov di,0
next:
shr bx,1
jnc bijiao1
jmp ad
ad:
add si,2
mov bx, data[si]
loop next
jmp exit
bijiao1:
cmp di,0
jg bijiao2
mov di,1
mov ax,bx
jmp ad
bijiao2:
cmp ax,bx
jle ad
mov ax,bx
jmp ad
exit:
ret
main endp
code ends
end start
回复列表 (共4个回复)
沙发
gdpydzw [专家分:210] 发布于 2006-11-09 18:20:00
DATAREA SEGMENT
DATA DW ........................
DATAREA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START: MOV AX,DATA
MOV DS,AX
MOV SI,00
MOV CX,100
MOV AX,[SI]
NEXT: MOV BX,[SI]
TEST BX,0001H
JNZ JI
CMP AX,BX
JL JI
MOV AX,BX
JI: INC SI
INC SI
LOOP NEXT
MOV AH,4CH
INT 21H
CODE ENDS
END START
板凳
253020645 [专家分:0] 发布于 2006-11-09 22:53:00
可不可以看看我的程序啊
正确的程序我也有啊
就是不知道我的程序有什么问题啊
3 楼
gdpydzw [专家分:210] 发布于 2006-11-09 23:30:00
你在使用SHR时把偶数变小了
4 楼
ibelivemyself [专家分:0] 发布于 2006-12-20 11:09:00
那要是再把那个最小的偶数显示出来呢?
exit:
mov dx,ax
mov ah,9
int 21h
ret
是不是这样子写呢?我是新手,请大家指教一下
我来回复