汇编程序:已知有一字符串STR,以'$'为结束标志,编写程序,把STR的内容复 制到NEW_STR中? 要求复制时(1)滤去所有非英文字符;(2)把大写字母变成小写;(3)统计新字符的长度放在NUM中
2016-12-29 17:57
1466 查看
assume cs: CODE, ds: DATA
DATA segment
DATA ends
CODE segment
CODE ends
end E
DATA segment
STR db '本程序将拷贝本字符串 STR。', 0Dh, 0Ah db '新字符串 NEW_STR 将滤去非 ASCII 字符,将大写字母改为小写。', 0Dh, 0Ah db '本字符串中共有 92 个 ASCII 字符。', 0Dh, 0Ah db '本程序采用 Microsoft MASM Professional Development System 6.11 版本。',0Dh, 0Ah, '$' NEW_STR db 80h dup (?) STR1 db 0Dh, 0Ah, 'NEW_STR 的长度是 0x', 4h dup (?), '。', '$' NUM dw ?
DATA ends
CODE segment
MAIN proc E: mov ax, DATA mov ds, ax mov es, ax lea dx, STR call INT9 lea si, STR ;DS:SI lea di, NEW_STR ;ES:DI xor cx, cx NEXT1: mov al, [si] cmp al, '$' jz FINISH cmp al, 7Fh ja NEXT0 ;>7Fh为非ASCII字符 cmp al, 'A' jb MOVE cmp al, 'Z' ja MOVE add al, 20h MOVE: mov [di], al inc cx inc di NEXT0: inc si jmp NEXT1 FINISH: mov NUM, cx mov byte ptr [di], '$' lea dx, NEW_STR call INT9 call LENGT lea dx, STR1 call INT9 mov ax, 4C00h int 21h MAIN endp INT9 proc mov ah, 9h int 21h ret INT9 endp LENGT proc ;将NEW_STR的长度写入STR1的子程序 lea di, STR1 add di, 15h ;移动到'length=0x'后面 mov bx, 0F000h mov cl, 0Ch ;右移12位,即十六进制的3位 L3: mov ax, NUM and ax, bx ;取当前十六进制位数字 shr ax, cl cmp ax, 9h ja L0 ;数字A-F,>9 add al, '0' ;数字0-9 jmp L1 L0: add al, 37h ;'A'-0xA L1: mov [di], al cmp cl, 0h jz L2 ;字符串已生成 inc di sub cl, 4h push cx mov cl, 4h shr bx, cl pop cx jmp L3 L2: ret LENGT endp
CODE ends
end E
相关文章推荐
- 编写一个程序,输入一串不超过60个字符组成的且不包含换行符的字符串,将字符串中的A到Z的字母按英文字典字母顺序重新排列,排列后的单词的长度要与原始句子中的长度相同,并且要求只对A到Z的字母重新排列,其
- 通过程序统计字符串的大写字母个数、小写字母个数、数字个数和其它字符个数。用函数func实现功能
- 汇编语言: 试编写一段程序,要求比较两个字符串 string1 和 string2 所含字符是否相等,如相 等则显示“MATCH”, 若不相同则显示“NO MATCH”。
- 编写一个程序,从标准输入读取字符,并把它们写到标准输出中。除了大写字母字符要转化为小写字母之外,所有字符的输出形式应该和他的输入形式完全相同
- 通过键盘输入一串小写字母(a~z)组成的字符串。请编写一个字符串过滤程序,若字符串中出现多个相同的字符,将非首次出现的字符过滤掉。 比如字符串“abacacde”过滤结果为“abcde”。 要求实现函
- 【C语言】编写一个程序统计输入字符串中: 各个数字、空白字符、以及其他所有字符出现的次数。
- 编写一个程序统计输入字符串中: 各个数字、空白字符、以及其他所有字符出现的次数
- 【C语言】编写一个程序统计输入字符串中: 各个数字、空白字符、以及其他所有字符出现的次数。
- 编写一个程序统计输入字符串中: 各个数字、空白字符、以及其他所有字符出现的次数
- C语言:编写一个程序统计输入字符串中,各个数字、空白字符、以及其他所有字符出现的次数。
- C语言:编写一个程序统计输入字符串中,各个数字、空白字符、以及其他所有字符出现的次数。
- 编写一个程序,输入一行字符,以回车结束,分别统计出其中的英文字母、空格、数字和其他字符的数
- 汇编语言 编写程序,如果输入的是大写字母,则输出对应的小写字母;如果输入的是小写字母,则输出对应的大写字母;如果输入的是数字,原样输出;按回车结束
- 汇编语言: 从键盘上输入一串字符(用回车键结束,使用 10 号功能调用。)放在 STRING 中,试 编制一个程序测试字符串中是否存在数字。如有,则把 CL 的第 5 位置 1,否则将该位置置 0。
- 要求编写程序,读入5个字符串,按由小到大的顺序输出。 (2)功能要求 ①输入格式:输入为由空格分隔的5个非空字符串,每个字符串不包括空格、制表符、换行符等空白字符,长度小于80。
- 汇编语言: 从键盘上输入一串字符(用回车键结束,使用10号功能调用。),将其中的小写英文 字母变换为大写英文字母,其他字符保持不变。然后将变换后的字符串显示出来。
- 编写一个程序统计输入字符串中:各个数字,空白字符,以及其他所有字符常出现的次数。
- 去除字符串中所有的非英文字符,再统计每种英文字符的个数(不区分大小写)
- 编写一个程序从标准输入读取字符,并把他们写到标准输出,除了大写字母转换成小写字母之外,其他的原样输出。
- 编写一个程序,输出一个字符串中的大写英文字母数,小写英文字母数以及非英文字母数。