程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 圖片-enum8086匯編語言問題求助

圖片-enum8086匯編語言問題求助

編輯:編程綜合問答
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


最佳回答:


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
按照你給的思路寫的能處理任意長度的字符串!
這個程序沒有延時你自己寫一個吧

fy8959113
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved