回 帖 发 新 帖 刷新版面

主题:[讨论]请赐教

data segment
    data1 DB 31H,21H,42H,52H,87H,23H,98H,01H
    count  DB 8H
    search DB 42H
    up DB 0
    down DB 0
    equa DB 0
    upString db 0ah,0dh,'UP Number:$'
    downString db 0ah,0dh,'Down Number$'
    equaString db 0ah,0dh,'Eqau Number$'    
data ends

code segment
main proc far
     assume cs : code, ds : data

    ; MOV CX, offset count
     MOV AX, 0
     MOV SI, AX
     MOV CL, count


LOOPBODY:  
     MOV AL, data1[SI]
     CMP AL, search
     JZ middle
     JS less
     JNS more
     LOOPNZ LOOPBODY                                               

;*****************************************
more:
 ; MOV BX, offset up
 ; INC BX
  INC up
  INC SI
  DEC CL
  JMP LOOPBODY

less:
;  MOV BX, offset down
;  INC BX
  INC down
  INC SI
  DEC CL
  JMP LOOPBODY

middle:
;  MOV BX, offset equa
; INC BX
  INC equa
  DEC CL
  INC SI
  JMP LOOPBODY


MOV       DX,OFFSET UPSTRING      ;输出UPstring
MOV       AH,09H
INT       21H
ADD       UP,30H
MOV       DL, UP      ;输出up
MOV       AH,02H
INT       21H
MOV       DX,OFFSET DOWNSTRING
MOV       AH,09H
INT       21H
ADD       DOWN,30H
MOV       DL, DOWN
MOV       AH,06H
INT       21H
MOV       DX,OFFSET EQUASTRING
MOV       AH,09H
INT       21H
ADD       EQUA,30H
MOV       DL, EQUA
MOV       AH,02H
INT       21H

MOV AX,4C00H
INT 21H 

ret
main endp
code ends
end main

这个问题是将search的42h这个值和data1中的各个值进行比较
然后将和42相等的放到equa大的放到up里面小的放到down里面
然后显示
我在运行的时候显示fatal error object file not found
这是什么问题啊

回复列表 (共4个回复)

沙发

; MOV CX, offset count前面的“;"去了
 ; MOV BX, offset up
 ; INC BX
;  MOV BX, offset equa
; INC BX

前面的“;"去了

板凳

不是啊!其实那些块里面不需要那些!是我后来改的!

3 楼

高手们,帮忙啊!

4 楼


在定义完数据段后,所定义的变量均向后100h个单元,需要我们将ds段寄存器置位,在程序assume cs : code, ds : data后面加上如下指令:(执行PROCEDURE a) 
xor ax,ax
mov ax,data 
mov ds,ax 

我来回复

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