实验三 指令实验(一)

 

 

 

实验三  指令实验(一)

[实验目的]

1、掌握指令的含义,进一步加深对指令的认识;

2、掌握用Turbo Debugger调试程序的方法。

[实验内容]

1、改写例3.81,找到result单元存1,未找到存0

     3.81 有一串L个字符的字符串存储于首地址为ASCII_STR的存储区中。如要求在字符串中找“空格”(ASCII码为20H)字符,找到则继续执行(NUM单元置1);如未找到则转到NOT_FOUND(NUM单元置0)去执行,编制实现这一要求的程序如下:

       MOV    CX,L

       MOV    SI,-1

       MOV    AL,20H

NEXT:

       INC    SI

       CMP    AL,ASCII_STR

       LOOPNE NEXT

       JNZ    NOT_FOUND

         .

         .

         .

NOT_FOUND:

.

         .

         .

 

2、用TD验证例3.57,例3.583.61

     3.57 要求屏蔽0、1两位,可用AND指令并设置常数0FCH。

               MOV   AL,0BFH

               AND   AL,0FCH

 

3.58 要求第5位置1,可用OR指令

           MOV   AL,43H

           OR    AL,20H

 

3.61 要求操作数的某些数位变反,可以使用XOR指令,只要把源操作数的立即数字段相应位置成1就可以达到目的。如果求第0、1位变反,可使用如下指令:

        MOV    AL,11H

        XOR    AL,3

 

3、TD验证例3.29,例3.30,看SP的变化,调试时先给AX赋值。

未赋值时:

 

赋值后:

4、输入下列指令,单步运行,观察AX,BX,SP,堆栈区域数据变化情况

       MOV   AX,1234H

       MOV   BX,5678H

       PUSH  AX

       PUSH  BX

       MOV   AX,0ABCDH

       MOV   BX,55AAH

       POP   BX

       POP   AX

 

 

 

[实验小结]

1.有空格改为20H

2.

输入时注意:

0BH    

0FFH

  1. -1”的输入:0FFFF
  2. 此句话为:结果输出位置:

01则查找到:存放位置:0210

00则未查找到:0210

原文地址:https://www.cnblogs.com/Catherinezhilin/p/9855749.html