1、无 出口参数:键盘输入字符ASCII码AL 功能调用1实验步骤:1、进入 DEBUG2、汇编 a0013B3:0000 MOV AH,10002 INT 210004 4、 执行 G=0 4从键盘输入 1后,屏幕上显示15、 取出口参数 查看AX寄存器。AL=31H 1的SACII码存入AL中。 再重做一次:G=0 4从键盘输入 a后屏幕上显示a AL=61H 翻到讲义41页,看图表7.4学习功能调用2功能号: 2 功 能: 在屏幕上显示一个字符 要显示字符的ASCII码DL 无 功能调用2实验步骤:1、准备入口参数要在屏幕上显示“3”,把“3”的ASCII码33HDLR DXDX 0000:
2、0033 0000 MOV AH,23、执行 G=0 43 回显字符再重做一次:要在屏幕上显示大写字母的“A”0041 A 回显字符功能调用1、2练习题:从键盘输入单个字符“1”,在屏幕上显示“2”。(在A命令下完成)a000004 ADD AL,10006 MOV DL,AL0008 MOV AH,2000A INT 21000C G=0 C运行结果:12功能调用2的二个特例在功能调用2时,DL中的值为0DH,它的作用是回车。回车:就是将光标从本行当前位置移到本行的第一列。在功能调用2时,DL中的值为0AH,它的作用是换行。换行:就是将光标从当前位置移到下一行的对应列。 本行第一列 光标当前
3、位置MOV AX,1020H MOV BX,3040H下行对应列 MOV CX,5060H 回车:MOV DL,0DHMOV AH,02H INT 21HMOV DL,0AH例:在屏幕上显示5秒倒计时。有如下4种显示结果。请分析原因。一、54321 二、54 3 2 1三、5 4321 四、第一秒显示5, 第二秒显示4把5覆盖掉,第三秒显示3把4覆盖掉,最后只显示1。返回DOS功能的使用MOV AH,4CH用于程序结束返回DOS从键盘输入1,在屏幕输出2。格式: 2编辑:EDIT G12.ASMCODE SEGMENTASSUME CS:CODESTART: MOV AH,01 (输入单个字符
4、) INT 21H ADD AL,1 PUSH AX MOV DL,0DH (回车) MOV AH,02 MOV DL,0AH (换行) POP DX MOV AH,02 (输出单个字符) MOV AH,4CH (返回DOS) CODE ENDS END START汇编:MASM G12;链接:LINK G12;运行:G12翻到讲义41页 看表 7.4学习功能调用9 9 显示字符串 字符串首地址DS:DX 注:字符串必须是以 $ 结尾。ABCDE$例题:在屏幕上显示字符串 ABCDE 文件名:SK9.ASMDATA SEGMENTX DB ABCDE$DATA ENDS ASSUME CS:C
5、ODE,DS:DATAMOV AX,DATA MOV DS,AX LEA DX,X 字符串首地址DS:DX MOV AH,9 MOV AH,4CH 返回DOS CODE ENDS编译:MASM SK9;LINK SK9;直接输入文件名SK9在屏幕上输出:ABCDE进入DEBUG状态,查看字符串在数据段的存放结果。DEBUG SK9.EXE U000B50:0000 B8 4F 0B MOV AX,0B4F0003 8E D8 MOV DS,AX0005 8D 16 00 00 LEA DX,00000009 B4 09 MOV AH,9000B CD 21 INT 21000D B4 4C M
6、OV AH,4C000F CD 21 INT 210011 50 PUSH AXG=0 D 输出:查看数据段字符串存放结果:D DS:00 OB4F:0000 41 42 43 44 45 24 00 00 00 .ABCDE$翻到讲义39页 看表 7.3学习功能调用1010 功能:从键盘输入字符串到缓冲区 缓冲区首地址DS:从键盘输入字符串abcde到数据缓冲区。MAX DB 10 定义最大接收字符串字符的个数ACT DB 0 实际输入字符串字符个数STR DB 10 DUP(0)输入字符串的首地址 ASSUME CS: LEA DX,MAX 缓冲区首地址DS: MOV AH,10 调试:0
7、003 8E D8 MOV DS,AX0009 B4 0A MOV AH,0A000D 50 PUSH AXG=0 Dabcde (输入字符串)查看输入字符串在数据缓冲区存放结果。000A0561626364650D.abcde. 长 实 回度 际 车从键盘输入一串字符 “abcde”,然后再输出。MAX DB 10 ACT DB 0 STR DB 10 DUP($) MOV DL,0AH 光标回到下行 LEA DX,STR 字符串首地址DS:翻到讲义74页,介绍延时子程序的编写方法。 DELAY PROC NEAR PUSH CX MOV BX,XXXXHFOR1: MOV CX,XXXXHFOR2: LOOP FOR2 (10T) DEC BX JNZ FOR1 POP CX RETDELAY ENDS提示:在编写延时子程序前,先了解所用计算机主频,以便计算出延时常数。1、 B609实验室计算机的主频f=3.1G2、 执行一次LOOP指令近似为10T