关于从控制台读写字符的问题
时间:2011-02-24
来源:互联网
刚学习汇编遇到从控制台读写字符的问题
编写一个过程,此过程用寄存器传递参数,参数内容为某一存储变量的首地址
过程功能体为循环从控制台读字符并回显,同时将读到的字符存储到由寄存器参数所指示的存储变量中形成一个字符串,遇到回车结束
调用后再将存储变量中的字符传打印输出,为什么控制台没有打印任何结果?我的代码如下
.data
TEMP DB 1000 dup(?) ;定义字节变量
.code
;从控制台都字符,遇到回车结束
READ_CHARA PROC
XOR SI, SI
loop:
MOV AH, 01H
INT 21H
CMP AL, 0DH
JE RESULT
MOV BYTE PTR[BX+SI], AL
INC SI
JMP loop
RESULT:
MOV BYTE PTR[BX+SI], '$'
RET
READ_CHARA ENDP
.STARTUP
MOV AX, @data
MOV DS, AX
LEA BX, TEMP ;将内存变量地址保存到基址寄存器
CALL READ_CHARA
;打印字符串
MOV DX, BX
MOV AH, 09H
INT 21H
;退出
MOV AH, 4CH
INT 21H
END
请有知道的恳请指导一下
编写一个过程,此过程用寄存器传递参数,参数内容为某一存储变量的首地址
过程功能体为循环从控制台读字符并回显,同时将读到的字符存储到由寄存器参数所指示的存储变量中形成一个字符串,遇到回车结束
调用后再将存储变量中的字符传打印输出,为什么控制台没有打印任何结果?我的代码如下
.data
TEMP DB 1000 dup(?) ;定义字节变量
.code
;从控制台都字符,遇到回车结束
READ_CHARA PROC
XOR SI, SI
loop:
MOV AH, 01H
INT 21H
CMP AL, 0DH
JE RESULT
MOV BYTE PTR[BX+SI], AL
INC SI
JMP loop
RESULT:
MOV BYTE PTR[BX+SI], '$'
RET
READ_CHARA ENDP
.STARTUP
MOV AX, @data
MOV DS, AX
LEA BX, TEMP ;将内存变量地址保存到基址寄存器
CALL READ_CHARA
;打印字符串
MOV DX, BX
MOV AH, 09H
INT 21H
;退出
MOV AH, 4CH
INT 21H
END
请有知道的恳请指导一下
作者: lcy779779 发布时间: 2011-02-24
Assembly code
这样看得清一些
.data TEMP DB 1000 dup(?) ;定义字节变量 .code ;从控制台都字符,遇到回车结束 READ_CHARA PROC XOR SI, SI loop: MOV AH, 01H INT 21H CMP AL, 0DH JE RESULT MOV BYTE PTR[BX+SI], AL INC SI JMP loop RESULT: MOV BYTE PTR[BX+SI], '$' RET READ_CHARA ENDP .STARTUP MOV AX, @data MOV DS, AX LEA BX, TEMP ;将内存变量地址保存到基址寄存器 CALL READ_CHARA ;打印字符串 MOV DX, BX MOV AH, 09H INT 21H ;退出 MOV AH, 4CH INT 21H END
这样看得清一些
作者: lcy779779 发布时间: 2011-02-24
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28