組合語言,大寫字母轉換為小寫
阿新 • • 發佈:2018-12-22
組合語言編寫字母轉換,大寫轉換為小寫,使用跳轉指令較多,並且做了容錯處理,目前沒有發現太大的bug,希望對大家學習彙編有幫助。
DATAS SEGMENT STRING DB 30 DB ? DB 30 DUP (?) WARN DB 10,'Input error,Please resume load;',10,'$' HINT DB 'Please input majuscule:',10,'$' RESULT DB 10,'Switching results:',10,'$' CHOICE DB 10,'Whether to continue?(Iput ESC end)',10,'$' DATAS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS START: MOV AX,DATAS MOV DS,AX RESTORE: MOV AH,9 LEA DX,HINT INT 21H MOV AH,10 LEA DX,STRING INT 21H MOV BL,STRING+1 MOV BH,0 LEA SI,STRING+2 MOV BYTE PTR [SI+BX],'$' MOV CX,BX MOV BL,2 CHECK: CMP STRING[BX],'A' JL ERROR CMP STRING[BX],'Z' JG ERROR ADD BL,1 LOOP CHECK MOV BL,STRING+1 MOV BH,0 MOV CX,BX MOV BL,2 CHANGE: ADD STRING[BX],32 ADD BL,1 LOOP CHANGE MOV AH,9 LEA DX,RESULT INT 21H LEA DX,STRING+2 INT 21H MOV AH,9 LEA DX,CHOICE INT 21H MOV AH,1 INT 21H CMP AL,27 JZ EXIT JMP RESTORE ERROR: MOV AH,9 LEA DX,WARN INT 21H JMP RESTORE EXIT: MOV AH,4CH INT 21H CODES ENDS END START
執行結果如下: