实验三 数据串传送和查表程序
实验目的
通过实验掌握下列知识:
1、利用简化段定义方法实现程序结构定义; 2、利用DOS的21H号中断调用完成输入输出; 3、查表法和查表指令XLAT;
4、数据串传送指令MOVS及重复前辍REP; 5、掌握EQU和DUP伪指令的用法。
实验内容及步骤
一、利用查表方法显示内存单元的内容
1、编辑下列程序: .model small .stack .data
str1 db 'ABCDEFGHIJ' ;待显示的内存区内容
str2 db 'Please input the number you will display:',10,13,'$' .code .startup mov ah,9
mov dx,offset str2
1
Q
int 21h ;显示STR2字符串的内容,即提示信息 mov ah,1
int 21h ;输入待显示的字符序号(0-9) mov bx,offset str1 sub al,30h
xlat ;查STR1表,对应序号的字符ASCII码进入AL mov dl,al mov ah,2
int 21h ;显示对应字符 .exit 0 End
2、程序汇编通过后,在运行过程中输入0-9的任意数字,显示STR1字符串中对应位置 的
1
Q
字符。
3、在DEBUG环境中,用P命令调试执行该程序,察看AL寄存器的变化情况及结果的输出,
分析其执行过程。
1
Q
1
Q
1
Q
二、数据串传送程序
1、编辑下列程序:
.model small .stack .data
str1 db 'abcdefghijklmn' ;源串定义 lengs equ $-str1
str2 db lengs dup (?),'$' ;目标串 .code .startup mov ax,ds
mov es,ax ;使DS和ES为同一个段 cld
1
Q
lea si,str1 lea di,str2 mov cx,lengs
rep movsb ;串复制 mov ah,9
mov dx,offset str2
int 21h ;显示目标串 .exit 0 End
2、程序汇编通过后,运行程序察看输出结果
1
Q
3、在DEBUG环境中,用P命令调试执行该程序,察看SI、DI寄存器及相应内存单元的变化情况,分析其执行过程。
1
Q
1
Q
1
Q
4.如果把源串的小写字母复制到目标串的同时再修改为对应的大写字母,该怎么修改程序?
可以把串复制部分修改,先从源串中取出字符,修改后送到目标串即可。 程序改为: .model small .stack .data
str1 db 'abcdefghijklmn' ;源串定义 lengs equ $-str1
str2 db lengs dup (?),'$' ;目标串 .code .startup mov ax,ds
mov es,ax ;使DS和ES为同一个段 lea si,str1 lea di,str2 mov cx,lengs
lp: ;循环开始的标志 mov al,[si] ;将源串的字符取出 sub al,20H ;将小写改为大写
mov [di],al ;将修改后的字符送到STR2 inc si inc di loop lp mov ah,9
mov dx,offset str2 ;lea dx,str2 int 21h ;显示目标串 .exit 0 End
1
Q
1
Q
运行前:
运行后:
编码 00 01 02 03 04 05 06 07 08 09 0A 0B 0C 0D 0E 0F 10 11 字符 NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI DEL DC1 编码 20 21 22 23 24 25 26 27 28 29 2A 2B 2C 2D 2E 2F 30 31 字符 SPACE ! “ # $ % & ‘ ( ) * + , - . / 0 1 编码 40 41 42 43 44 45 46 47 48 49 4A 4B 4C 4D 4E 4F 50 51 字符 @ A B C D E F G H I J K L M N O P Q 编码 60 61 62 63 64 65 66 67 68 69 6A 6B 6C 6D 6E 6F 70 71 字符 ` a b c d e f g h i j k l m n o p q 实验附录 ASCII码表
1
Q
12 13 14 15 16 17 18 19 1A 1B 1C 1D 1E 1F DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US 32 33 34 35 36 37 38 39 3A 3B 3C 3D 3E 3F 2 3 4 5 6 7 8 9 : ; < = > ? 52 53 54 55 56 57 58 59 5A 5B 5C 5D 5E 5F R S T U V W X Y Z [ \\ ] ^ _ 72 73 74 75 76 77 78 79 7A 7B 7C 7D 7E 7F r s t u v w x y z { | } ~ DEL
欢迎下载,资料仅供参考!!!
资料仅供参考!!!
资料仅供参考!!!
1
因篇幅问题不能全部显示,请点此查看更多更全内容