教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 高等教育 >

计科《汇编语言程序设计》 - 实验指导书(4)

来源:网络收集 时间:2026-09-07
导读: 思考题 1.段内直接寻址的IP变化与段内间接寻址有什么不同? 2.段内间接寻址对转移地址的寻址方法,与实验二中,操作数的寻址方法有什么异 同? 3.段间直接寻址与段内直接寻址对IP的修改有什么不同? 4.段间间接

思考题

1.段内直接寻址的IP变化与段内间接寻址有什么不同?

2.段内间接寻址对转移地址的寻址方法,与实验二中,操作数的寻址方法有什么异

同?

3.段间直接寻址与段内直接寻址对IP的修改有什么不同?

4.段间间接寻址需要读出两个字的内容,其中哪个字填入IP,哪个字填入CS?

附:示例程序eg03.asm

data segment

code1 segment ; 定义代码段1 assume cs:code1

mov ax, 5678h;本程序中类似指令均无实际意义,主要用于跟踪程序运行情况 next:

mov jmp

bx,0000h bx寄存器轻灵

dword ptr [bx]; (10) 跳转到以bx容的寄存器 以双字访问 ;…

mov add mov

ax,1000h ax,1 ;(9)

ax,2000h 立即数

mov bx,9abch ;(5)立即数寻址 jmp short again ;(6)跳转到agian mov mov add inc mov jmp

si,1234h 原变址寄存器 dx,1000h ;(7)

dx,100h 相加后送入dx dx 自加一 bx,0004h

送入

word ptr [bx] ; (8) 跳转到 以字的形式访问

addr dw 0002h,1000h,001Bh data ends

again:

code1 ends

code2 segment ; 定义代码段2

assume cs:code2,ds:data data段 内容送到段寄存器ds当中 start:

mov

ax,data

mov jmp add

mov

ds,ax

mov cx, 1234h

near ptr next1 ;(1) 跳转到next1标号中 cx,1 ;(2) 1235H ax,1010h dx,1234h

;(3)

跳转到next标号中去

next1:

jmp far ptr next ;(4) ;…

mov

code2 ends end start

实验四 字符串拷贝

实验目的

1. 掌握字符串操作指令;

2. 掌握汇编程序中简单循环程序设计的方法。

预习与实验要求

1.复习教材相关内容,复习字符串操作指令; 2.复习控制转移指令:循环指令和条件转移指令; 3.回顾循环程序设计的基本方法,以及需要注意的问题; 4.实验前认真听讲,服从安排。尽可能独立思考并完成实验。

实验设备与器材

微型计算机,Windows操作系统,DOS操作系统,MASM或TASM编译器,LINK或TLINK连接器。

实验原理

1.字符串传送指令格式为

MOVS DST, SRC MOVSB MOVSW

其中MOVS需要在指令中指定类型,MOVSB表示对字节进行操作,MOVSW对字进行操作。该指令执行操作:

(1) ((DI)) ← ((SI))

(2) 字节操作:(SI)←(SI)±1, (DI)←(DI)±1

字操作: (SI)←(SI)±2, (DI)←(DI)±2 方向标志 DF=0 时用 + ,DF=1 时用 - 2.设置方向标志指令:CLD、STD

CLD置DF=0,STD置DF=1 3.MOVS可与REP前缀配合工作 REP MOVS执行操作:

(1) 如 (CX)=0 则退出 REP,否则转(2) (2) (CX) ? (CX) -1 (3) 执行 MOVS (4) 重复 (1) ~ (3)

4.REP与MOVS配合工作可把数据段中SI指向的源串复制到附加数据段中DI指向的目的串。

5.循环指令LOOP可以用来执行简单的循环程序,可以在循环体中逐一复制字符串中的每一个元素。

6.LOOP指令默认使用CX计数器,可以用条件转移指令来实现它的功能

LOOP NEXT

DEC CX

JNZ NEXT

实验内容

1. 定义一个字符串数组和三个空的字节型数组;

2. 采用寄存器相对寻址方式,将字符串数组中的字符按顺序拷贝到空数组1中; 3. 采用基址变址寻址方式,将字符串数组中的字符按顺序拷贝到空数组2中; 4. 采用字符串传送指令,将字符串数组中的字符按顺序拷贝到空数组3中; 5. 第2步和第3步,要求分别使用循环指令和条件转移指令。

实验报告

1. 根据实验要求,设计程序,在源程序中用(1)、(2)、(3)……进行标注,并在指

令后面注明该段指令所使用的拷贝方式;

2. 用Debug调试程序,用U指令进行反汇编,查看指令地址,或者输出.lst文件,查看编

译之后的源程序。

3. 跟踪程序运行情况,可通过G指令设置断点,每用一种方法拷贝之后,用D指令查看存

储单元内容。

4.比较3种不同的拷贝方法,总结自己的实验心得。

思考题

1.REP和LOOP都使用哪个寄存器作为默认计数器? 2.空数组3需要定义在哪个段中,为什么? 3.比较3种拷贝方法的优缺点。

附:示例程序eg04.asm

data segment

mess db 'personal_computer$'

extra segment

mess3 db 18 dup (?) extra ends

code segment

mov bx,offset mess ;(2)用基址变址寻址方式拷贝 mov si,0 mov cx,18 mov mess2[si],al inc si dec cx jnz next2

mess1 db 18 dup(?) mess2 db 18 dup(?)

data ends

assume cs:code, ds:data, es:extra mov ax, data mov ds, ax mov ax, extra mov es, ax

mov si,0 ;(1)用寄存器相对寻址方式拷贝 mov cx,18 mov mess1[si],al inc si loop next1

start:

next1: mov al,mess[si]

next2: mov al,[bx][si]

lea si, mess ;(3)用字符串传送指令拷贝 lea di, mess3 mov cx, 18 cld rep movsb

mov ah,4ch int 21h

code ends end start

实验五 表格查找

实验目的

1. 熟悉循环程序和分支程序设计方法; 2. 了解与键盘输入有关的DOS 21H功能调用; 3. 了解DOS显示功能调用。

预习与实验要求

1.复习控制转移指令:循环指令、无条件转移指令和条件转移指令;

2.复习教材相关内容,回顾循环程序和分支程序设计的基本方法,以及需要注意的问题;

3. 实验前认真听讲,服从安排。尽可能独立思考并完成实验。

实验设备与器材

微型计算机,Windows操作系统,DOS操作系统,MASM或TASM编译器,LINK或TLINK连接器。

实验原理

1. 循环程序和分支程序可用LOOP及J*指令实现,注意循环结束条件。 2. 与键盘输入有关的DOS 21H功能

AH=A:从键盘读入一串字符串并把它存入用户定义的缓冲区中。 DS:DX=缓冲区首地址;

缓冲区第一个字节保存最大字符数,由用户程序给出。第二个字节是实际输入字符的个

…… 此处隐藏:1239字,全部文档内容请下载后查看。喜欢就下载吧 ……
计科《汇编语言程序设计》 - 实验指导书(4).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/613370.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)