概述
用汇编语言编一段程序:用键盘输入一段字符,使输入的数字以二进制数显示,
输入的大写字母显示小写,输入小写字母显示大写,并统计出期中大写字母的数量。
如输入:123ASDFxcvb$PO0
将显示:000100100011asdfXCVB$po0000 6(大写字母的数量)
可不输入除字母和数字以外的符号,比如$。
题目链接:http://zhidao.baidu.com/question/488251450808880892.html
做而论道编写的程序如下:
;========================================================
ASSUME CS:CC, DS:QQ
QQ SEGMENT
STR DB 100, ?, 100 DUP('$')
MSG1 DB 'Input the string : ', 13, 10, '$'
MSG2 DB 13, 10, 'OUT is : ', 13, 10, 36
N_BIG DW ?
QQ ENDS
CC SEGMENT
START:
MOV AX, QQ
MOV DS, AX
;--------------------------------------------------
LEA DX, MSG1 ;显示“INPUT THE STRING:”
MOV AH, 9
INT 21H
LEA DX, STR
MOV AH, 0AH ;输入字符串
INT 21H
LEA DX, MSG2
MOV AH, 9
INT 21H
MOV CL, STR + 1
MOV CH, 0
CMP CX, 0
JNZ CAL
JMP EXIT
CAL:
MOV BX, 0
LOP:
MOV DL, STR[BX + 2]
CMP DL, '0'
JB NEXT1
CMP DL, '9'
JA NEXT1
CALL O_BIN
JMP NEXT
NEXT1:
CMP DL, 'A'
JB NEXT2
CMP DL, 'Z'
JA NEXT2
INC N_BIG
XOR DL, 32
JMP O_CHR
NEXT2:
CMP DL, 'a'
JB NEXT
CMP DL, 'z'
JA NEXT
XOR DL, 32
O_CHR:
MOV AH, 2
INT 21H
NEXT:
INC BX
LOOP LOP
MOV DL, ' '
MOV AH, 2
INT 21H
O_NUM:
MOV AX, N_BIG
MOV BL, 10
DIV BL
MOV BX, AX
MOV AH, 2
CMP BL, 0
JZ D_2
MOV DL, BL
ADD DL, '0'
INT 21H
D_2:
MOV DL, BH
ADD DL, '0'
INT 21H
;--------------------------------------------------
EXIT:
MOV AH, 4CH
INT 21H
;-----------------------------
O_BIN:
PUSH BX
PUSH CX
MOV AH, 2
MOV BL, DL
MOV CX, 4
O_L:
MOV DL, '0'
TEST BL, 8
JZ O_N
INC DL
O_N:
INT 21H
SHL BL, 1
LOOP O_L
POP CX
POP BX
RET
;-----------------------------
CC ENDS
END START
;========================================================
本程序经过编译、链接,执行的效果完全符合题目要求。
最后
以上就是苗条冰棍为你收集整理的80x86汇编语言:输入字符串、转换、输出的全部内容,希望文章能够帮你解决80x86汇编语言:输入字符串、转换、输出所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复