你我渐行渐远
2015-12-16 16:48
采纳率: 66.7%
浏览 1.6k
已采纳

enum8086汇编语言问题求助

题目:包含任意字符、以0结尾的字符串中的小写字母转换成大写字母。

预期:将不是小写字母的直接进行显示,是小写字母的转换后显示

问题:在输出字符时未输出第一个字符后就停止
**
图片说明
编译工具:masm dosbox
代码:DATA SEGMENT
STRING DB 0DH,0AH, 'iamAstudent','0'
DATA ENDS
;------------------------------
PROGRNAM SEGMENT
ASSUME DS:DATA,CS:PROGRNAM
PUSH DS
XOR AX,AX

MOV AX,DATA

MOV DS,AX
LEA SI,STRING
PUSH SI

BEGIN: MOV AL,[SI] ;判断是否为小写字母并进行转换
CMP AL,0
JE RETURN

CMP AL,'a'
JB PRINT
CMP AL,'z'
JA PRINT ;如果不是小写字母直接进行输出
SUB AL,20H
MOV [SI],AL
PRINT:PUSH DS ;将字母进行输出
MOV AH,2
MOV AL,[SI]
MOV DL,AL
INT 21H
POP DS

N:INC SI
JMP BEGIN

RETURN:RET
POP SI
POP DS
PROGRNAM ENDS
END BEGIN


  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

3条回答 默认 最新

相关推荐 更多相似问题