实验六 汇编语言基本指令操作练习1

更新时间:2023-11-06 14:34:01 阅读量: 教育文库 文档下载

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

课堂内容练习与思考

1、 设执行前(SS)=2000H, (SP)=00FEH,DS:1234=5678H

MOV BX,1234H

PUSH [BX]

POP

BX

执行后SS,SP,DS,BX有何变化。

2、思考:如果堆栈指针SP的初值为FFFF那么执行一次PUSH后SP更改为何值?如果堆栈指针SP的初值为0000那么执行一次PUSH后SP更改为何值?

3、如何利用MOV 指令和堆栈段SS实现两寄存器内容的互换。(注意IP,SP指针的变化及执行步数有何特点?)

4、寄存器(或存储器)内容的互换有几种方法?分别用相应指令实现?

实验六 汇编语言基本指令操作练习(1)

一、实验目的:

1、掌握8086/8088基本指令的使用方法和功能。

2、初步了解汇编语言程序设计的基本结构和利用DEBUG调试程序的方法。

3、进一步熟悉汇编语言的上机过程。

二、上机实验指导:

(一)利用DEBUG的A命令输入指令,做如下实验。 1、比较下面指令的区别: ①MOV AX,2000H

②MOV BX,[2000H]

-D 2000 2001;显示字存储单元DS:2000的内容 3ADC:2000 1234(假设结果) -R;显示指令执行前AX,BX的内容 AX=0000 SP=FFEE DS=3ADC IP=0100

BX=0000 BP=0000 ES=3ADC NV

UP

CX=0000 SI=0000 SS=3ADC EI

PL

DX=0000 DI=0000 CS=3ADC NZ

NA

PO

NC

3ADC:0100 858CFFF3 TESTCX,[SI+F3FF] DS:F3FF=74C0

-A;利用A命令输入汇编指令 3ADC:0100 3ADC:0103 3ADC:0107

MOV AX,2000 MOV BX,[2000]

INT3;此中断为断点中断,使程序执行暂停

3ADC:0108

-G;不指定地址,从当前CS:IP处执行 AX=2000 SP=FFEE DS=3ADC IP=0107

BX=585A BP=0000 ES=3ADC NV

UP

CX=0000 SI=0000 SS=3ADC EI

PL

DX=0000 DI=0000 CS=3ADC NZ

NA

PO

NC

3ADC:0107 CC INT3;指令执行后,AX=2000H,BX=585AH

2、以寄存器BX作为地址指针,从BX所指的存储单元开始起,连续存放着两个无符号数(字操作数),编程求它们的和,并将结果存放在这两个数之后。

-RBX;显示BX寄存器中的内容(BX=0000h) BX0000 :;回车

-D0000 0005;显示DS:0000到DS:0005的内容(BX所指的三个 字操作数),如BX不为0000H,自己修改范围。 3A6B:0000

CD 20 FF 9F 00 9A.....

;三个字操作数依次为20CDH,9FFFH,9A00H -A;输入指令 3A6B:0100 3A6B:0102 3A6B:0103 3A6B:0104

MOV AX,[BX] INC INC

BX BX

ADD AX,[BX]

3A6B:0106 3A6B:0107 3A6B:0108

INC INC

BX BX

MOV [BX],AX

3

3A6B:010A INT 3A6B:010B -G;运行此程序 AX=C0CC SP=FFEE DS=3A6B IP=010A 3A6B:010 -D0000

BX=0004 BP=0000 ES=3A6B NV

UP

CX=0000 SI=0000 SS=3A6B EI

PL

DX=0000 DI=0000 CS=3A6B NZ

NA

PO

NC

ACC INT3

0005;观察运行结果,检查第三个字操作数是否为前两个

字操作数之和 3A6B:0000

CD 20 FF 9F CC C0.....

3、在屏幕上显示大写字符”A”。 -A 1277:0100 1277:0102 1277:0104 1277:0106 1277:0107 -G

mov mov int21 int3

ah,2

dl,41;大写字符”A”的ASCII值为41H

A;显示大写字符”A” AX=0241 BX=0000 CX=0000 DX=0041 SP=FFEE BP=0000 SI=0000 DI=0000 DS=1277 ES=1277 SS=1277 CS=1277 IP=0106 NV UP EI

PL

NZ

NA

PO

1277:0106

CC

INT3

三、实验步骤

1、按照上机实验指导的内容,练习三个程序的运行和调试。2、用DEBUG的A命令输入指令,完成以下功能: 已知(AL)=50H,(BL)=18H,计算AL-BL,并将存入CL中。 输入指令后,运行调试,观察运行结果。 -a 1277:0100 mov al,50 1277:0102 mov bl,18 1277:0104 sub al,bl 1277:0106 mov cl,al 1277:0108 int

3

1277:0109

-g;观察寄存器AX,BX,CX的内容 AX=0038 BX=0018 CX=0038 DX=0000 SP=FFEE

BP=0000

SI=0000

DI=0000

DS=1277ES=1277SS=1277CS=1277

NC

IP=0108 NV UP EI PL NZ AC 1277:0108

CC

INT

3

3、用DEBUG的A命令输入指令,完成以下功能: 输入一个大写字母,将其转换为小写字母后输出。 编好程序后,用DEBUG调试、运行程序。 -a 1277:0100 mov ah,1 1277:0102 int 21 1277:0104 add al,20 1277:0106 mov dl,al 1277:0108 mov ah,2 1277:010A int 21 1277:010C int

3

1277:010D -g

Aa;输入一大写字母转换为小写字母后输出 AX=022A BX=0000 CX=0000 DX=002A SP=FFEE BP=0000 SI=0000 DI=0000 DS=1277 ES=1277 SS=1277 CS=1277 IP=010C

NV

UP

EI

PL

NZ

NA

1277:010CCCINT3

四、实验报告

PO NC

PO

NC

1、用DEBUG调试程序时,如何进行跟踪运行? 2、写出实验内容二的程序段。 3、写出实验内容三的源程序。

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

Top