在屏幕上输出0-98,以十进制显示。不懂的问题在线等
时间:2011-01-11
来源:互联网
Assembly code
上面代码中用//隔开的代码,如果不加上这些,结果是输出0 33 33 一直就是33
但是加上//后面的代码就是0-98得数,这是为什么。难道系统功能调用会影响AX的值吗
CODE SEGMENT PARA 'CODE' ASSUME CS:CODE MAIN PROC FAR MOV AX,0 MOV CX,99 FLAG: MOV AH,0 MOV DH,0 CMP AL,0 JZ LOP1 CMP AL,10 JB LOP2 //PUSH AX MOV BL,10 DIV BL MOV DH,AL MOV BH,AH ADD DH,30H MOV DL,DH MOV AH,2 INT 21H ADD BH,30H MOV DL,BH MOV AH,2 INT 21H MOV DL,' ' MOV AH,2 INT 21H //POP AX FLAG1: ADD AL,1 LOOP FLAG JMP STOP LOP1: //PUSH AX MOV DL,30H MOV AH,2 INT 21H MOV DL,' ' MOV AH,2 INT 21H //POP AX JMP FLAG1 LOP2: //PUSH AX MOV DH,AL ADD DH,30H MOV DL,DH MOV AH,2 INT 21H MOV DL,' ' MOV AH,2 INT 21H //POP AX JMP FLAG1 STOP: MOV AH,4CH INT 21H MAIN ENDP CODE ENDS END
上面代码中用//隔开的代码,如果不加上这些,结果是输出0 33 33 一直就是33
但是加上//后面的代码就是0-98得数,这是为什么。难道系统功能调用会影响AX的值吗
作者: jianshan198977 发布时间: 2011-01-11
会啊。显示字符的 02h 功能调用,会将 DL 中的待显示字符返回在 AL 里的;上面的代码就使用了 AL 作为每次显示的内容。所以,需要先行保存再恢复的;或者是使用其它的寄存器或内存变量来担任这个角色。
作者: zara 发布时间: 2011-01-11
课本中就没介绍显示字符的 02h 功能调用,会将 DL 中的待显示字符返回在 AL 里。那样的话,使用系统功能调用时,最好进行保存数据的操作,以免产生不必要的错误。
保护数据的操作是否应该在编程时经常使用,不管会不会影响寄存器
保护数据的操作是否应该在编程时经常使用,不管会不会影响寄存器
作者: jianshan198977 发布时间: 2011-01-11
引用 2 楼 jianshan198977 的回复:
课本中就没介绍显示字符的 02h 功能调用,会将 DL 中的待显示字符返回在 AL 里。那样的话,使用系统功能调用时,最好进行保存数据的操作,以免产生不必要的错误。
保护数据的操作是否应该在编程时经常使用,不管会不会影响寄存器
课本中就没介绍显示字符的 02h 功能调用,会将 DL 中的待显示字符返回在 AL 里。那样的话,使用系统功能调用时,最好进行保存数据的操作,以免产生不必要的错误。
保护数据的操作是否应该在编程时经常使用,不管会不会影响寄存器
你那是什么课本~ 我看过的书都有这种常用调用的介绍哦~
作者: znxllyuan 发布时间: 2011-01-11
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28