资源预览内容
第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
亲,该文档总共5页全部预览完了,如果喜欢就下载吧!
资源描述
实验三:INT21功能的使用一. 实验目的1. 了解INT 21H 各功能块的功能和使用方法2. 掌握字符方式下PC机显示器显示控制 二. 实验设备PC机一台三. 实验内容及步骤本实验在显示器上显示AZ 26个英文字母。显示器I/O功能调用使用说明如下:INT 21H使用说明(1)入口:AH=01H 功能: 键盘输入字符,AL=输入字符(2)入口:AH=02H,DL=数据(ASCII码) 功能:写DL中的数据到屏幕上(3)入口:AH=09H,DS:DX=字串首址,且字符串尾用$ 填充 功能:显示一字串,直到遇到$ 为止。四. 编程练习A).利用INT 21H功能,在PC机上显示:“MY NAME IS ”. B).编程计算 Z=5678H6666H1234H,并把结果显示在屏幕上。 C).编程计算 Z=5678H0666H14H,并把结果显示在屏幕上. D).编程计算 Z=5678H0321H02H,并把结果显示在屏幕上。 E).编程计算 Z=5678H6666H8888H,并把结果显示在屏幕上。 F).编程计算 Z=5678H0666HABCDH,并把结果显示在屏幕上。 G).编程计算 Z=0678H06H14H,并把结果显示在屏幕上。五软件流程图和程序清单A);利用INT 21H功能,在PC机上显示:“MY NAME IS ”DATAS SEGMENT STRING DB MY NAME IS ZHANGSHAOJUN!,$DATAS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATASSTART: MOV AX,DATAS MOV DS,AX LEA DX,STRING ;获取要显示字符串首地址 MOV AH,09H ;显示字符 INT 21H MOV AH,4CH INT 21HCODES ENDS END START 【运行结果】B);编程计算 Z=5678H6666H1234H,并把结果显示在屏幕上。查表法:DATAS SEGMENTORG 0300HTAB DB 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,FNUM DW 5678H,6666H,1234HDATAS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATASSTART: MOV AX,DATAS MOV DS,AX LEA SI,NUM MOV AX,SI ADC AX,SI+2 SUB AX,SI+4 MOV CX,04H ;将AX中的十六进制数显示在屏幕上BBB:MOV BX,0010H MOV DX,0 DIV BX ;依次求出AX中数的低位到高位,于DX中 PUSH AX MOV DI,DX MOV BYTE PTR DL,0300HDI ;查表找出对于ASCII码值,存入DL中,显示 MOV AH,02H INT 21H POP AX LOOP BBB MOV DL,H ;显示H MOV AH,02H INT 21H MOV AH,4CH INT 21HCODES ENDSEND START【运行结果】 求值法:CODES SEGMENT ASSUME CS:CODESSTART: MOV AX,5678H+6666H-1234HMOV CX,4ROL AX,CLCCC:PUSH AX AND AX,000FH CMP AX,09H JC BBB ;CF=1,跳转 ADD AX,07H ;CF=0,AX中值加07HBBB:ADD AX,30H ;AX中数值加30H,得到对于ASCII值 MOV DX,AX MOV AH,02H ;显示一位 INT 21H POP AX PUSH CX MOV CL,4 ROL AX,CL ;右移4位,将所要显示数字置于AX最低位 POP CX LOOP CCC MOV DL,H ;显示H MOV AH,02H INT 21H MOV AH,4CH INT 21HCODES ENDSEND START【运行结果】F);F编程计算 Z=5678H0666HABCDH,并把结果显示在屏幕上。DATAS SEGMENT ORG 3700HTAB DB 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F NUM DW 5678H,0666H,0ABCDH DATAS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATASSTART: MOV AX,DATAS MOV DS,AX LEA SI,NUM MOV AX,SI ADD AX,SI+2 SUB AX,SI+4 PUSH AX JNB CCC ;CF位为0,则转移 MOV DL,- ;CF位为1,则显示-号,并将AX中的负数,加1取反,求原码 MOV AH,02H INT 21H PUSH AX DEC AX NOT AXCCC:MOV CX,04H ;将AX中的十六进制数显示在屏幕上BBB:MOV BX,0010H MOV DX,0 DIV BX PUSH AX MOV DI,DX ;依次求出AX中数的低位到高位,于DX中 MOV BYTE PTR DL,3700HDI ;查表找出对于ASCII码值,存入DL中,显示 MOV AH,02H INT 21H PUSH AX LOOP BBB MOV DL,H ;显示H MOV AH,02H INT 21H MOV AH,4CH INT 21HCODES ENDSEND START 【运行结果】六实验心得:这次实验主要是了解INT 21H 各功能块的功能和使用方法,编程后6题基本上是相似的,所以选择了几个写在报告纸上,在这次实验里面,我感觉自己用到了很多寄存器,思路也特别混乱,希望在以后不断学习中,能写出更合理更简单的程序。
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号