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

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条回答 默认 最新

  • 迷茫的活着 2015-12-19 06:33
    关注

    assume cs:code,ds:data
    data segment
    h1 db 'jhkhJHkJjjsKJ',0
    data ends
    code segment
    start:mov ax,data
    mov ds,ax
    mov bx,0

    mov cx,0
    s1:mov cl,[bx]
    jcxz s5
    cmp cl,'Z'
    ja s2
    s3:mov ah,02h
    mov dl,cl
    int 21h
    inc bx
    jmp s1

    s2:sub cl,20h
    jmp s3

    s5:mov ax,4c00h
    int 21h
    code ends
    end start
    按照你给的思路写的能处理任意长度的字符串!
    这个程序没有延时你自己写一个吧

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 怎么让数码管亮的同时让led执行流水灯代码
  • ¥20 SAP HANA SQL Script 。如何判断字段值包含某个字符串
  • ¥85 cmd批处理参数如果含有双引号,该如何传入?
  • ¥15 fx2n系列plc的自控成型机模拟
  • ¥15 时间序列LSTM模型归回预测代码问题
  • ¥50 使用CUDA如何高效的做并行化处理,是否可以多个分段同时进行匹配计算处理?目前数据传输速度有些慢,如何提高速度,使用gdrcopy是否可行?请给出具体意见。
  • ¥15 基于STM32,电机驱动模块为L298N,四路运放电磁传感器,三轮智能小车电磁组电磁循迹(两个电机,一个万向轮),如何通过环岛的原理及完整代码
  • ¥20 机器学习或深度学习问题?困扰了我一个世纪,晚来天欲雪,能饮一杯无?
  • ¥15 c语言数据结构高铁订票系统
  • ¥15 关于wkernell.PDB加载的问题,如何解决?(语言-c#|开发工具-vscode)