从键盘读入一字符串(长度小于32),并将其输出显示.

用汇编语言表示... 用汇编语言表示 展开
 我来答
匿名用户
2014-01-03
展开全部
同学我帮你完成了你的程序,编译通过,可 1、从键盘输入一个字符串(串长度小于100个字符),统计其串的长度后输出该串,需要说明的是最后输出的字符串长度是十六进制的,不过这个关系不大。呵呵
;加点分哈~~~~~~~~~~~~~~~~~~~~~~~~~~~
;-----------------------------------------------------------------

;-------------------------------
;宏定义
display MACRO string
mov ah,09h
lea dx,string
int 21h
ENDM
;-------------------------------
;********************************数据段
data segment
array db 100 dup(0) ;数组开辟空间
string1 db "Please input a string ended with ENTER: $" ;字符串以$结束
string2 db "The length of the string = $"
string3 db "The string you inputed is: $"
crlf db 13,10,13,10,"$" ;13回车,10换行
data ends
;**********************************
;**********************************代码段
code segment
assume ds:data,cs:code ;段对应关系的说明
main proc far ;far子程序调用时的参数
;-----------------------------------------
start:
push ds
sub ax,ax ;清零
push ax ;压栈
mov ax,data ;将数据传送入数据段
mov ds,ax
;---------------------------------------
;主程序开始
;---------------------------------------------------------
;显示"Please input a string ended with ENTER: $"的内容
display string1
;----------------------------------------------------------
;键盘输入字符串以回车键结束
mov bx,offset array ;设定基址
mov di,0
input:
mov ah,01h
int 21h
cmp al,20h ;比对空格键不能输入空格
je input
cmp al,0dh ;和'回车键'进行比较
je next
mov [bx+di],al ;存储输入字符
inc di
mov cx,di ;用cx保存di值
cmp di,64h
jbe input
;-----------------------------------------------
;输出字符串的长度
next:
display crlf
display string2
mov ax,cx
mov bl,10h
div bl ;除以10
mov bh,ah ;将余数暂存起来
add al,30h
mov dl,al ;商
mov ah,02h
int 21h

add bh,30h
mov dl,bh ;余数
mov ah,02h
int 21h ;说明:最后结果两位数是十六进制的
mov dl,'H'
mov ah,02h
int 21h
;-------------------------------------------
;输出字符串
display crlf
display string3
mov bx,offset array ;设定基址
mov si,0
again:
mov al,[bx+si]
mov dl,al
mov ah,02h
int 21h
inc si
cmp si,cx
jbe again
ret
main endp ;主函数结束
;********************************************
code ends ;代码段定义结束
end start ;这个程序段全部结束
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式