日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

已知字符串STRING以‘$’为结束标志;统计其中小写字母的个数,结果送到COUNT单元,并把该字符串中的小写字母变成大写字母,其它字符保持不变。要求分别在屏幕上输出原字符串以及修改后的字符串。

發布時間:2024/3/13 编程问答 39 豆豆

只為記錄匯編作業

題目:已知字符串STRING以‘$’為結束標志;統計其中小寫字母的個數,結果送到COUNT單元,并把該字符串中的小寫字母變成大寫字母,其它字符保持不變。要求分別在屏幕上輸出原字符串以及修改后的字符串。

代碼如下:

;2.已知字符串STRING以‘$’為結束標志;統計其中小寫字母的個數,結果送到COUNT單元, ;并把該字符串中的小寫字母變成大寫字母,其它字符保持不變。 ;要求分別在屏幕上輸出原字符串以及修改后的字符串。 DATA SEGMENTSTRING DB '1a2a3aABCabc!@#$' ;定義字符串LEN DB $-STRING ;len用來記錄string長度COUNT DB 0 ;count用來記錄小寫字母個數 CRLF DB 0AH,0DH,"$" ;回車換行 DATA ENDS CODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXXOR CX,CX ;CX初始化MOV CL,LEN ;設置循環次數LEA DX,STRING ;使dx指向string初始地址MOV AH,09H ;輸出原字符串INT 21HLEA BX,STRING ;使bx指向string初始地址 X: MOV AL,[BX] ;取bx指向地址所在的字符并放入al中CMP AL,'a' ;字符與小寫a作比較JB NEXT ;小于則跳轉next函數CMP AL,'z' ;字符與小寫z作比較JA NEXT ;大于則跳轉next函數INC COUNT ;使count自增1SUB AL,20H ;使當前的小寫字母變成小寫MOV [BX],AL ;把小寫字母變成大寫 NEXT:INC BX ;使bx指向下一個地址LOOP X ;做循環,cx-1 當cx=0時則退出循環,執行下一條語句LEA DX, CRLF;回車換行 MOV AH, 09H INT 21HLEA DX,STRING ;輸出更新后的字符串MOV AH,09HINT 21HLEA DX, CRLF;回車換行 MOV AH, 09H INT 21H ADD COUNT,30H ;讓count變成ascll碼并且輸出MOV DL,COUNTMOV AH,02HINT 21HMOV AH,4CH ;結束INT 21H CODE ENDS END START

以下代碼可以輸出10個以上的小寫字母個數

;2.已知字符串STRING以‘$’為結束標志;統計其中小寫字母的個數,結果送到COUNT單元, ;并把該字符串中的小寫字母變成大寫字母,其它字符保持不變。 ;要求分別在屏幕上輸出原字符串以及修改后的字符串。 DATA SEGMENTSTRING DB 'aaaaaaaaaaaaaaaaaaaaaaaaaa!@#$' ;定義字符串 26個aLEN DB $-STRING ;len用來記錄string長度COUNT DW 0 ;count用來記錄小寫字母個數 CRLF DB 0AH,0DH,"$" ;回車換行ANS DB 6 DUP(0)TIMES DB 0 DATA ENDS CODE SEGMENTASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXXOR CX,CX ;CX初始化MOV CL,LEN ;設置循環次數LEA DX,STRING ;使dx指向string初始地址MOV AH,09H ;輸出原字符串INT 21HLEA BX,STRING ;使bx指向string初始地址 X: MOV AL,[BX] ;取bx指向地址所在的字符并放入al中CMP AL,'a' ;字符與小寫a作比較JB NEXT ;小于則跳轉next函數CMP AL,'z' ;字符與小寫z作比較JA NEXT ;大于則跳轉next函數INC COUNT ;使count自增1SUB AL,20H ;使當前的小寫字母變成小寫MOV [BX],AL ;把小寫字母變成大寫 NEXT:INC BX ;使bx指向下一個地址LOOP X ;做循環,cx-1 當cx=0時則退出循環,執行下一條語句LEA DX, CRLF;回車換行 MOV AH, 09H INT 21HLEA DX,STRING ;輸出更新后的字符串MOV AH,09HINT 21HLEA DX, CRLF;回車換行 MOV AH, 09H INT 21H XOR AX,AX ;將count輸出MOV AX,COUNT ;將count放入ax中XOR BX,BX ;bx初始化MOV BX,10 ;將10放入bx中MOV DI,OFFSET ANS ;使di指向ans頭地址F:XOR DX,DX ;dx初始化DIV BX ;ax/bx 因為count是dw類型因此商在AX,余數在DX,這里的余數<=9,因此也在DLADD DL,30H ;將dl中的0-9變成ascll碼里的0-9方便輸出MOV [DI],DL ;將dl放入di指向地址的內容里INC DI ;di指針+1INC TIMES ;tiems+1,方便后面的倒敘輸出CMP AX,0 ;ax和0作比較,如果ax=0則說明已經被除完了JNE F ;如果ax≠0,則跳到f函數DEC DI ;di指針-1,此時指向的是最高位XOR CX,CX ;cx初始化MOV CL,TIMES ;把times給cl方便循環輸出 FUNCTION:MOV DL,[DI] ;把dl指向地址的內容給dl,并做dos單字符輸出操作MOV AH,2INT 21HDEC DI ;di指針-1LOOP FUNCTION ;cl>0則cl-1并且循環fuction,否則執行下一條語句 MOV AH,4CH ;結束INT 21H CODE ENDS END START

總結

以上是生活随笔為你收集整理的已知字符串STRING以‘$’为结束标志;统计其中小写字母的个数,结果送到COUNT单元,并把该字符串中的小写字母变成大写字母,其它字符保持不变。要求分别在屏幕上输出原字符串以及修改后的字符串。的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。