实验五逻辑运算及串操作类指令FIN

更新时间:2023-03-09 05:24:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

实验五 逻辑运算及串操作类指令

一.实验目的:

1.掌握逻辑指令和串指令的功能

2.学习使用逻辑指令和串指令编写程序

二.实验工具软件

MS-DOS , DEBUG, PC机 三.实验内容及调试结果

1. 练习AND,OR,XOR ,TEST指令,观察指令结果操作数以及受

到影响的标志

(1) 用DEBUG程序的r命令设定AX=4569H,a命令汇编指令and

ax,000f。再用g或t命令执行该指令并查看结果AX=0009H. ZF=0

(2) 用DEBUG程序的r命令设定AX=4569H,a命令汇编指令or

ax,0fff。再用g或t命令执行该指令并查看结果AX=4FFFH ZF=0

(3) 用DEBUG程序的r命令设定AX=BX=CX=4567H,a命令汇

编指令xor ax,0000。XOR BX,FFFF,XOR CX,CX再用g或t命令执行该指令并查看结果AX=4567H BX=BA98H CX=0000 ZF=1

(4) 用DEBUG程序的r命令设定AX内容,a命令汇编指令TEST

ax,000f。再用g或t命令执行该指令并查看结果AX=4567 ZF=0

2. 设:AX= 0012H,BX= 0034H,写一段小程序,把它们装配成1234H 存到AX中去。

用g命令看结果AX=1234H CL=4 ROL指令移位4次?移位最后导致CF=0

3. BX=84F0H,写一段小程序把 BX 中的 16 位数每 4 位数据扩展成一个双字操作数压入堆栈。

-a 2000:0000

2000:0000 mov bx,84f0 2000:0003 mov dh,4 2000:0005 mov cl,4 2000:0007 ROL bx,cl 2000:0009 mov ax,bx 2000:000B and ax,0f 2000:000E push ax 2000:000F dec dh 2000:0011 jnz 0007 2000:0013

(1)程序执行之前,用DEBUG命令观察堆栈区域的内容

(2)用g命令执行这一段程序,用DEBUG命令观察堆栈区域的内容。

(3)程序执行后,dh=??说明什么问题? DH=0 循环了4次。

4.把 内存ES:1000H开始的 10 个字节缓冲区置为 41H('A') -a 2000:0000

2000:0000 mov di,1000 2000:0003 mov al,41 2000:0005 mov cx,0a 2000:0008 cld 2000:0009 rep stosb 2000:000B

(1)观察内存目的串中的10个字符。

(2)执行完这段程序后,再观察内存目的串中的10个字符,目的串指针(DI),重复计数器(CX)的内容

5.从一个字符串中查找一个指定的字符,比如’e’。 -e es:3000 'computer'

-a 2000:0000

2000:0000 mov di,3000

2000:0003 mov al,65 2000:0005 mov cx,0008 2000:0008 cld

2000:0009 repne scasb 2000:000B -g=2000:0000 2000:000b

程序执行结束后,(CX)=?,ZF=?说明什么问题

6 . 比较两个字符串,找出它们不相匹配的位置 -e ds:3000 'personal computer' -e es:4000 'personal clmputer'

-a 2000:0000

2000:0000 mov si,3000 2000:0003 mov di,4000 2000:0006 mov cx,11 2000:0009 cld

2000:000A repe cmpsb 2000:000C

-g=2000:0000 2000:000c

程序执行结束后,(CX)=?,ZF=?说明什么问题

四.思考题

1. REP,REPZ,REPNZ重复的条件分别是什么? cx!=0 ;cx!=0 && ZA=0 ;cx!=0 && ZF!=0 2. 执行串指令之前应该作好那些准备工作? 设定原串和目的串的指针

串扫描或串检索需要先把要检索的目标放入寄存器 3. 总结AND,OR,XOR,NOT,TEST指令对标志的影响。 4.

本文来源:https://www.bwwdw.com/article/ydip.html

Top