1data 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,判斷它是 大寫字母 ...