2012-11-15 47 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

我不知道你在說什麼:( –

相關問題