实验三 数据串传送和查表程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验三数据串传送和查表程序
实验三数据串传送和查表程序
实验目的
通过实验掌握下列知识:
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
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字符串中对应位置
的
字符。
3、在DEBUG环境中,用P命令调试执行该程序,
察看AL寄存器的变化情况及结果的输出,
分析其执行过程。
二、数据串传送程序
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
lea si,str1
lea di,str2
mov cx,lengs
rep movsb ;串复制
mov ah,9
mov dx,offset str2
int 21h ;显示目标串.exit 0
End
2、程序汇编通过后,运行程序察看输出结果
3、在DEBUG环境中,用P命令调试执行该程序,察看SI、DI寄存器及相应内存单元的变化情况,分析其执行过程。
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
运行前:
运行后:
实验附录 ASCII码表
编码字符编码字符编码字符编码字符
00 NUL 20 SPACE 40 @ 60 `
01 SOH 21 ! 41 A 61 a
02 STX 22 “42 B 62 b
03 ETX 23 # 43 C 63 c
04 EOT 24 $ 44 D 64 d
05 ENQ 25 % 45 E 65 e
06 ACK 26 & 46 F 66 f
07 BEL 27 ‘47 G 67 g
08 BS 28 ( 48 H 68 h
09 HT 29 ) 49 I 69 i 0A LF 2A * 4A J 6A j 0B VT 2B + 4B K 6B k 0C FF 2C , 4C L 6C l 0D CR 2D - 4D M 6D m 0E SO 2E . 4E N 6E n 0F SI 2F / 4F O 6F o
10 DEL 30 0 50 P 70 p
11 DC1 31 1 51 Q 71 q
12 DC2 32 2 52 R 72 r
13 DC3 33 3 53 S 73 s
14 DC4 34 4 54 T 74 t
15 NAK 35 5 55 U 75 u
16 SYN 36 6 56 V 76 v
17 ETB 37 7 57 W 77 w
18 CAN 38 8 58 X 78 x
19 EM 39 9 59 Y 79 y 1A SUB 3A : 5A Z 7A z 1B ESC 3B ; 5B [ 7B { 1C FS 3C < 5C \ 7C | 1D GS 3D = 5D ] 7D } 1E RS 3E > 5E ^ 7E ~ 1F US 3F ? 5F _ 7F DEL。