2012-11-15 85 views
2

我有这个代码,根据我应该切换每个字符的上限,我已经检查了位掩码,它很好。但是,当我打印字符串时,它仍然是小写形式。如何在MASM 32中从小写更改为大写?

  .MODEL SMALL 
      .STACK 
        .DATA 

MEN   DB  'abcd' 


     .CODE 

      ORG  100H 
MAIN  PROC FAR 

      LEA  BX, MEN+1 
      MOV CX, 20 

OTRO:  MOV  AH,[BX] 
      CMP  AH, 61H 
      JB   OTRO2 
      CMP  AH, 7AH 
      JA   OTRO2 
      AND  AH, 11011111B 
      MOV  [BX], AH 

    OTRO2: INC  BX 
      LOOP OTRO 
      MOV  AX, 4C00H 
      INT  21H 

    MAIN  ENDP 

    END  MAIN 

回答

2

你跳过第一个字符,

LEA  BX, MEN+1 

和循环超出了字符串的长度,

MOV CX, 20 

,但比它似乎其他在这个合作结束。你如何印刷字符串?它不在提供的代码中。

+0

哦,我该死那加一个是为debuggin原因,我与中间体21 –

+0

如何区隔设置打印呢?我认为你可能会错误地处理数据段。 –

+0

我不知道你在说什么:( –

相关问题