注册 登录
编程论坛 汇编论坛

在屏幕上输出字符串

303770957 发布于 2006-12-09 18:30, 1530 次点击
;***********************************************
;以下是在屏幕上输出字符串
;***********************************************
NAME printzifuchuan
TITLE TEXT_5_16
DATA SEGMENT
STR1 DB 'Press any key to continue...$'
DATA ENDS
STACK1 SEGMENT PARA STACK
DB 10H DUP(0)
STACK1 ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK1
START:PUSH DS
MOV AX,0
PUSH AX
MOV AX,DATA
MOV DS,AX
MOV DX,OFFSET STR1;
MOV AH,09H;输出字符串STR1
INT 21H
MOV AH,01H;暂停接收一个数字
INT 21H
MOV AH,4CH;退出程序返回dos
INT 21H
CODE ENDS
END START
;***********************************************
13 回复
#2
senyee2006-12-09 18:42
MOV AH,01H; 好象是接受一个字符并显示
INT 21H
#3
菜鸟上路2006-12-09 22:38
以下是引用senyee在2006-12-9 18:42:39的发言:
MOV AH,01H; 好象是接受一个字符并显示
INT 21H

这里相当于C语言的getch()

#4
senyee2006-12-10 00:08
以下是引用菜鸟上路在2006-12-9 22:38:31的发言:

这里相当于C语言的getch()

不对吧~~

mov ah 8
int 21

才是........ 没记错的话

#5
菜鸟上路2006-12-10 11:55
以下是引用菜鸟上路在2006-12-9 22:38:31的发言:

这里相当于C语言的getch()

#6
lefttime2006-12-10 18:04
MOV AH,01H
INT 21H
是用于接收一个字符,没输入计算机不就一直等待中么!这的确相当于C语言中的getch();当然接收是一方面,处不处理是另一方面,这里并没有对输入的结果进行处理,所以它的作用就相当于 暂停
#7
lefttime2006-12-10 18:16
而8号中断也行
功能是: 键盘输入(无回显)检测Ctrl-Break
都是用AL接收字符,不处理情况下,效果不就一样么,只是1号中断即输即显,而8号中断常用于输入密码而已!
#8
3037709572006-12-10 18:35
7楼说的完全正确!
#9
3037709572006-12-10 18:54
请大家考虑一下,如果把楼主程序中的STR1 DB 'Press any key to continue...$'改为:STR1 DB '请按任意键继续...$'其他的程序代码都不变能不能正确的在屏幕上显示:请按任意键继续...
呵呵!
#10
菜鸟上路2006-12-10 20:26
以下是引用303770957在2006-12-10 18:54:12的发言:
请大家考虑一下,如果把楼主程序中的STR1 DB 'Press any key to continue...$'改为:STR1 DB '请按任意键继续...$'其他的程序代码都不变能不能正确的在屏幕上显示:请按任意键继续...
呵呵!

请问改了这个就能输出中文吗?你先试试

#11
lefttime2006-12-11 19:02

呵呵,理论上是可以的,不过你要是在没有中文支持的平台下执行就看不到啦

#12
senyee2006-12-11 23:03
乱码............
#13
3037709572006-12-13 15:05

在masm5.0中编译结果是乱码.

#14
cdinten2006-12-17 14:14

显然是的!!!

1