回 帖 发 新 帖 刷新版面

主题:[讨论]一个最小偶数的小问题


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个回复)

沙发

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

板凳

可不可以看看我的程序啊
正确的程序我也有啊
就是不知道我的程序有什么问题啊

3 楼

你在使用SHR时把偶数变小了

4 楼


那要是再把那个最小的偶数显示出来呢?
exit:
     mov  dx,ax
     mov  ah,9
     int  21h
     ret
是不是这样子写呢?我是新手,请大家指教一下

我来回复

您尚未登录,请登录后再回复。点此登录或注册