彙編 大小寫轉換

2021-09-06 15:38:52 字數 3106 閱讀 8334

1

data segment

2;定義字串緩衝區

3;maxlen 表示允許輸入的最大字元數量

4;actlen 表示實際輸入的數量

5;str 用於儲存輸入的字串

6;以下面為例,允許最大輸入5個字元,如果str後面的長度也定義為5,則實際輸入的字元數量僅為4,

7;因為最後乙個字元會用於儲存0dh(回車符號)

8 ;例如:輸入"1234",然後回車,此時記憶體的情況為: 05 00 31 32 33 340d

9;因此,為了滿足實際的最大數量,通常將maxlen定義得比實際的多1個。

10 maxlen db 6;允許最大長度

11 actlen db 0;實際長度

12 str dw 6 dup(''

) ;存放字串

13;提示語句

14 prompt1 db 0dh,0ah,"please input a string:$"

15 prompt2 db 0dh,0ah,"your string is :$"

16 choose db 0dh,0ah,"chose 1 or 2:$"

17ends

1819

code segment

20start:

21;設定資料段暫存器

22mov ax, data

23mov ds, ax

24input:

25;提示輸入,提示語句位於ds:dx處

26lea dx, choose

27 mov ah, 9

28int 21h

29mov ah,01h ;輸入跳轉

30int 21h

31cmp al,31h

32mov dl,0ah

33mov ah,02h

34int 21h

35mov dl,0dh

36mov ah,02h

37int 21h

38jz tosmall

39jmp tobig

40tosmall:

41call input_str

42 mov si,0;指標

43mov cl,actlen;迴圈次數

44 mov ch,0

45call tosmall_print

46jmp next

47tobig:

48call input_str

49 mov si,0;指標

50mov cl,actlen;迴圈次數

51 mov ch,0

52call tobig_print

53jmp next

54next:

55jmp input

56;返回作業系統

57mov ax, 4c00h

58int 21h

59ends

60 ;---------------------

61tosmall_print proc near

62;輸出結果的提示語句

63lea dx,prompt2

64 mov ah, 9

65int 21h

66xunhuan1:

67mov ax,str[si]

68cmp al,5bh

69jnb nochange

70add ax,20h

71nochange:

72mov dl,al

73mov ah,02h

74int 21h

75inc si ;加1不影響cf

76loop xunhuan1

77ret

78tosmall_print endp

79 ;---------------------

80tobig_print proc near

81;輸出結果的提示語句

82lea dx,prompt2

83 mov ah, 9

84int 21h

85xunhuan2:

86mov ax,str[si]

87cmp al,5bh

88jnb nochange2

89add ax,20h

90nochange2:

91sub ax,20h

92mov dl,al

93mov ah,02h

94int 21h

95inc si ;加1不影響cf

96loop xunhuan2

97ret

98tobig_print endp

99 ;---------------------

100input_str proc near

101 ;呼叫ah=0ah的21h中斷程式,獲取輸入的字串;

102 ;(ds:dx)=緩衝區最大字元數

103 ;(ds:dx+1)=實際輸入字元數

104 ;ds:dx=緩衝區首址

105lea dx,maxlen

106mov ah,0ah

107int 21h

108109

;取得實際輸入的字串數目

110mov bl,actlen

111 mov bh,0

112 ;將結尾處改為'$'以便呼叫ah=09h功能,即輸出剛輸入的字串

113 mov str[bx],'$'

114ret

115116

lea dx, prompt1

117 mov ah, 9

118int 21h

119ret

120input_str endp

121 ;------------------------

122 end start ; set entry point and stop the assembler.

大小寫轉換

小寫數值轉大寫 xieshuxu 傳入轉換字串 傳入整數單位 如 元 傳入小數點後一位單位 如 角 傳入小數點後兩位單位 如 分 public string xiaotoda string xiao,string one,string two,string tree if xiao.indexof ...

大小寫轉換

problem description x現在要學習英文以及各種稀奇古怪的字元的了。現在他想把一串字元中的小寫字母變成大寫字元,大寫字母變成小寫字母,其他的保持不變。input 輸入有多組。每組輸入乙個字串,長度不大於80,不包含空格。output 輸出轉換後的字串 sample input a b...

大小寫轉換

a b c d這樣的52個字母 包括大寫 在計算機中儲存時也要使用二進位制數來表示。標準ascii碼使用7位二進位制數 剩下的1位二進位制為0 來表示所有的大寫和小寫字母,如下圖所示,可以看出字母對應大小寫的差值為32。來進行大小寫轉換吧。請用程式實現 輸入乙個英文本母char,判斷它是 大寫字母 ...