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

源代码得不出正确结果,求大牛修改

静水唯洁 发布于 2010-12-03 19:50, 439 次点击
任务描述:输入一个小写字母,转换为大写字母。若是小写字母,则CF=0,若不是,CF=1,并显示CF。
下面是本人写的源代码,执行不出正确的结果,我猜应该是跳转不对,或者INT 21H用得不对。但是找不出。请高手帮忙修改一下。



DATA SEGMENT
STR1 DB 'enter a lower letter','$'
STR2 DB 'CF=0,please enter a lower letter!','$'
STR3 DB 'CF=1','$'
DB 10 DUP(?)
DATA ENDS
CODE SEGMENT
  ASSUME CS:CODE,DS:DATA
 BEGIN PROC FAR
  PUSH DS
  XOR AX,AX
  PUSH AX
  MOV AX,DATA
  MOV DS,AX
AA1: MOV AH,9
  MOV DX,OFFSET STR1
 INT 21H
 AA: CMP AL,61H
 JB AA2
 CMP AL,7AH
 JA AA2
AA3:CLC
    MOV AH,09H
    MOV DX,OFFSET STR3
    INT 21H
    SUB AL,20H
    MOV AH,02H
    MOV DL,AL
    INT 21H
EXIT: RET   
AA2:STC
    MOV AH,09H
    MOV DX,OFFSET STR2
    INT 21H
   
 CODE ENDS
 END BEGIN
1 回复
#2
xiaomarn2010-12-04 20:13
程序代码:
DATA SEGMENT
STR1 DB 'enter a lower letter',0dh,0ah,'$'
STR2 DB 'CF=0,please enter a lower letter!',0dh,0ah,'$'
STR3 DB 'CF=1 letter=','$'
DB 10 DUP(?)
DATA ENDS

CODE SEGMENT
  ASSUME CS:CODE,DS:DATA
BEGIN PROC FAR
  PUSH DS
  XOR AX,AX
  PUSH AX

 

  MOV AX,DATA
  MOV DS,AX

 

AA1:

    MOV AH,9
    MOV DX,OFFSET STR1
    INT 21H
AA:

    mov ah,0
    int 16h
   

    CMP AL,61H
    JB AA2
    CMP AL,7AH
    JA AA2
AA3:
    CLC
    push ax
    MOV AH,09H
    MOV DX,OFFSET STR3
    INT 21H
    pop ax
    SUB AL,20H
    MOV AH,02H
    MOV DL,AL
    INT 21H
EXIT: RET  

AA2:STC
    MOV AH,09H
    MOV DX,OFFSET STR2
    INT 21H
    jmp exit
CODE ENDS
END BEGIN

1