Td调试的数字默认16进制 实验四 指令实验(二)

Td调试的数字默认16进制

实验四   指令实验(二)

[实验目的]

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

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

[实验内容]

1、调试作业3.263.28

   3.26  试分析下列程序段完成什么功能?

        MOV   CL,04

        SHL   DX,CL

        MOV   BL,AH

        SHL   AX,CL

        SHR   BL,CL

        OR    DL,BL

分析:

mov cl,04; cl值为4
shl dx,cl; 逻辑左移4位相当于*16
mov bl,ah; ah中值送到bl中
shl ax,cl; 逻辑左移4位相当于*16
shr bl,cl; 逻辑右移4位相当于/16
or dl,bl; 二者异或操作

逻辑(算术)左移逻辑(算术)右移区别

 

测试结果:

 

注意:测试时给dx,ax赋值;


结果是把 DX:AX 的32位值 左移 4位

   3.28 下列程序段执行后,BX寄存器中的内容是什么?

        MOV    CL,3

        MOV    BX,0B7H

        ROL    BX,1

        ROR    BX,CL

分析:

初始 BX=0000 0000 1011 0111
左移一位 0000 0001 0110 1110
右移三位 1100 0000 0010 1101,即C02D

测试结果:

左移一位:

 

右移三位:

 

2、改写程序,调试作业3.11

    3.11 执行下列指令后, AX寄存器中的内容是什么?

TABLE   DW    10,20,30,40,50

ENTRY   DW    3

        .

        .

        .

       MOV   BX,OFFSET TABLE

       ADD   BX,ENTRY

       MOV   AX,[BX]

 

上级步骤:

若命名文件test.asm

  1. tasm test; 得到编译后的文件test.obj
  2. Tlink test; 得文件
  3. Td test

测试代码:

 

测试结果:

 

[实验小结]

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