首页 > 代码库 > 汇编-字符和数据的显示程序
汇编-字符和数据的显示程序
一、实习目的
掌握字符和数据的显示方法。
二、实习内容
先显示信息“INPUT STRING THE END FLAG IS $”再接受字符如为0~9则计数器加1并显示数据。如为非数字,则直接显示但不计数。
三、代码
data segment result dw 0; ;保存转换结果 msgOne db 'INPUT STRING THE END FLAG IS ','$' msgTwo db 0ah,0dh,'0 - 9 character number in the string is:','$' nxtLine db 0ah,0dh,'$' ;回车换行 string db 0ah,0dh,'the string is:',100 dup(?) c10 db 10; data ends myStack segment stack db 100 dup(?) myStack ends code segment assume DS:data,CS:code start: mov ax,data; mov DS,ax; lea dx,msgOne; 输出提示信息 mov ah,09h; int 21h; mov dl,'$' mov ah,02h; int 21h; lea dx,nxtLine; mov ah,09h; int 21h; mov bx,16; mov cx,0; input: ;将键盘输入的字符串存储在string中 mov ah,01h; int 21h; mov string[bx],al; cmp al,'$'; 如果输入字符为'$',则结束输入 jz outInput cmp al,'0'; 如果输入字符不是数字,则转至 next: 处 jb next cmp al,'9' ja next inc cx; next: inc bx; jmp input outInput: lea dx,string; 输出字符串string mov ah,09h; int 21h; lea dx,msgTwo; 输出字符串msgTwo mov ah,09h; int 21h; mov ax,cx; 将cx转换为对应数字字符的ASCII,压入stack中 mov dh,0; mov cx,0; changeToDec: mov ah,0; cmp al,0; jz outChangeToDec; div c10; mov dl,ah; push dx; inc cx; jmp changeToDec outChangeToDec: cmp cx,0; jz endPro; 如果没有数据压入栈,说明字符串中无数字字符 jnz outputResult; 如果有数据压入栈,说明字符串中有数字字符 endPro: ;输出'0',并跳转至last mov dl,'0' mov ah,02h; int 21h; jmp last; outputResult: ;将压入栈中的字符输出 pop dx; add dl,30h; mov ah,02h; int 21h; loop outputResult last: mov ah,4ch; 程序结束 int 21h; code ends end start
四、运行结果
汇编-字符和数据的显示程序
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。