注册 登录
编程论坛 汇编论坛

写了段程序不知道哪错了 帮忙看一下 谢谢!

min860140560 发布于 2013-06-01 19:47, 1114 次点击
要求: 当X小于0时,Y=X+10;当X大于10时,Y=X-19;否则Y=2*X




DATAS SEGMENT
    INPUT DB 'PLEASE INPUT NUMBER: $'
       X  DB  ?
      BUF DB  ?
          ;此处输入数据段代码  
DATAS ENDS

STACKS SEGMENT
       DB 200 DUP(0);此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
        MOV AX,DATAS
        MOV DS,AX
        LEA DX,OFFSET INPUT ; 9号调用
        MOV AH,9
        INT 21H
        MOV CX,1
        MOV AH,1          ;1号调用
        INT 21H
        CMP AL,'0'      ;和0的ASCII碼比较,若高于跳转到loop1
        JA  LOOP1
        ADD AL,10H
        JMP NEXT
LOOP1:
        CMP AL,'10'     ;和10的ASII码比较,若高于跳转到loop2
        JA LOOP2
        MOV BL,2H
        IMUL BL
LOOP2:  SUB AL,19H
NEXT:   MOV BUF,AL
        LEA DX,WORD PTR BUF
        MOV AH,9H
        INT 21H         ;此处输入代码段代码
        MOV AH,4CH
        INT 21H
CODES ENDS
    END START

[ 本帖最后由 min860140560 于 2013-6-1 20:57 编辑 ]
7 回复
#2
向阳花开2013-06-01 20:02
新手路过,Y=2*X这种情况没有写出来吧?
#3
min8601405602013-06-01 20:15
回复 2楼 向阳花开
写了吧  loop1不是处理了这种吗
#4
wp2319572013-06-01 22:30
INT 指令 没啥用了啊
#5
向阳花开2013-06-01 22:49
回复 3楼 min860140560
你有masm编译器么?
#6
yu1862812013-06-14 23:25
楼组 作为新人雪那种语言好啊
#7
hu9jj2013-06-15 09:44
以下是引用yu186281在2013-6-14 23:25:00的发言:

楼组 作为新人雪那种语言好啊
建议先将中文学好。
#8
yu1862812013-06-15 23:30
回复 7楼 hu9jj
打字比较快 没注意 呵呵
1