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

大家帮忙看一下这个分支程序啊~~~~~~~~~~~~~~~~~~~~~~~

a244129836 发布于 2014-10-22 09:41, 3929 次点击
程序的功能是想输入一个名字,然后判断,N就从头再来,Y就输出yes,问题是再次9号功能时乱码
具体如下
只有本站会员才能查看附件,请 登录


DATAS SEGMENT
    ;此处输入数据段代码
    PRINT1 DB 'WHAT IS YOUR NAME?$'
    PRINT2 DB '(Y/N)?$'  
    PRINT3 DB 'YES RIGHT$'
DATAS ENDS

STACKS SEGMENT
    ;此处输入堆栈段代码
STACKS ENDS

CODES SEGMENT
    ASSUME CS:CODES,DS:DATAS,SS:STACKS
START:
    MOV AX,DATAS
    MOV DS,AX
    MOV AH,9
    LEA DX,PRINT1
    INT 21H
    MOV AH,2
    MOV DL,13
    INT 21H
    MOV AH,2
    MOV DL,10
    INT 21H
    MOV AH,10
    BUFFER DB 10
    DB ?
    DB 10 DUP(?)
    INT 21H
    MOV AH,9
    LEA DX,PRINT2
    INT 21H
    mov dx,0
    MOV AH,2
    MOV DL,13
    INT 21H
    MOV AH,2
    MOV DL,10
    INT 21H
    MOV AH,1
    MOV DL,AL
    INT 21H
    let0:
    cmp al,'N'
    jGE out1
    jMP out2
   
   
    out1:
   MOV AH,9
    LEA DX,PRINT1
    INT 21H
    MOV AH,2
    MOV DL,13
    INT 21H
    MOV AH,2
    MOV DL,10
    INT 21H
    MOV AH,10
    INT 21H
    MOV AH,9
    LEA DX,PRINT2
    INT 21H
    mov dx,0
    MOV AH,2
    MOV DL,13
    INT 21H
    MOV AH,2
    MOV DL,10
    INT 21H
    MOV AH,1
    MOV DL,AL
    INT 21H
   
    out2:
    MOV AH,2
    MOV DL,13
    INT 21H
    MOV AH,2
    MOV DL,10
    INT 21H
    MOV AH,9
    LEA DX,PRINT3
    INT 21H
    ;此处输入代码段代码
    MOV AH,4CH
    INT 21H
CODES ENDS
    END START
5 回复
#2
wp2319572014-10-22 10:26
没16位环境了啊
#3
a2441298362014-10-22 17:38
回复 2 楼 wp231957
肿么改啊
#4
我是沙罗2014-10-22 20:43
高手啊,有一年没有碰过汇编了
#5
hu9jj2014-10-23 17:07
很久没有用过汇编了,现在也很少有汇编的调试环境,手工分析的确比较麻烦。
#6
wfoo2014-10-24 11:52
qemu或者bochs真的很好,可以单步调试。我平常工作中要用汇编都是用的这两个,qemu还可以模拟mips,arm,ppc等其他架构的CPU。
1