接收一个十进制数字串,且扩展成10位。
时间:2011-01-29
来源:互联网
功能:接收一个十进制数字串,且扩展成10位。
入口参数:DX=缓冲区偏移
出口参数:cf=0,表示成功,cf=1,表示不成功。
getnum proc
mov ah,10 接收一个字符串
int 21h
call newline
call isdnum 判断是否为10进制数字串
jc getnum2
mov si,dx ---->从这里开始下面的代码就看不懂每行是在干什么了,求人给解释。
inc si
mov cl,[si]
xor ch,ch
mov ax,maxlen
std
mov di,si
add di,ax
add si,cx
sub ax,cx
rep movsb
mov cx,ax
jcxz getnum1
xor al,al
rep stosb
getnum1:cld
clc
getnum2:ret
getnum endp
入口参数:DX=缓冲区偏移
出口参数:cf=0,表示成功,cf=1,表示不成功。
getnum proc
mov ah,10 接收一个字符串
int 21h
call newline
call isdnum 判断是否为10进制数字串
jc getnum2
mov si,dx ---->从这里开始下面的代码就看不懂每行是在干什么了,求人给解释。
inc si
mov cl,[si]
xor ch,ch
mov ax,maxlen
std
mov di,si
add di,ax
add si,cx
sub ax,cx
rep movsb
mov cx,ax
jcxz getnum1
xor al,al
rep stosb
getnum1:cld
clc
getnum2:ret
getnum endp
作者: yangxiang1 发布时间: 2011-01-29
getnum proc
mov ah,10 接收一个字符串
int 21h
call newline
call isdnum 判断是否为10进制数字串
jc getnum2
mov si,dx ---->缓冲区首地址给si
inc si 指向缓冲区的第2个字节---实际的字符数
mov cl,[si]
xor ch,ch 将ch置0,使cx存放实际的字符数
mov ax,maxlen 用ax存放希望输入字符串的最大位数
std 置df,使字符串操作从高地址开始
mov di,si 现在si指向的是字符串前的那个单元,同时让di也执行该单元
add di,ax 让di指向预留下的maxlen个单元的最后一个单元
add si,cx 让si指向字符串最后的那个字符(前一个单元的地址+字符串长度)
sub ax,cx 相减后ax为不足的字符数(最大字符数-实际字符数)
rep movsb 把实际输入的字符串移到maxlen个单元的后面
mov cx,ax
jcxz getnum1 如果不足的字符数是0(就是比maxlen个字符还差0个字符,则结束)
xor al,al 将al置成0
rep stosb 填充到字符串前面,使整个字符串加上前面的0正好是maxlen个
getnum1:cld
clc
getnum2:ret
getnum endp
mov ah,10 接收一个字符串
int 21h
call newline
call isdnum 判断是否为10进制数字串
jc getnum2
mov si,dx ---->缓冲区首地址给si
inc si 指向缓冲区的第2个字节---实际的字符数
mov cl,[si]
xor ch,ch 将ch置0,使cx存放实际的字符数
mov ax,maxlen 用ax存放希望输入字符串的最大位数
std 置df,使字符串操作从高地址开始
mov di,si 现在si指向的是字符串前的那个单元,同时让di也执行该单元
add di,ax 让di指向预留下的maxlen个单元的最后一个单元
add si,cx 让si指向字符串最后的那个字符(前一个单元的地址+字符串长度)
sub ax,cx 相减后ax为不足的字符数(最大字符数-实际字符数)
rep movsb 把实际输入的字符串移到maxlen个单元的后面
mov cx,ax
jcxz getnum1 如果不足的字符数是0(就是比maxlen个字符还差0个字符,则结束)
xor al,al 将al置成0
rep stosb 填充到字符串前面,使整个字符串加上前面的0正好是maxlen个
getnum1:cld
clc
getnum2:ret
getnum endp
作者: shzhfu 发布时间: 2011-01-30
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28