计科《汇编语言程序设计》 - 实验指导书(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字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [高等教育]公司协助某村精准扶贫工作总结.doc
- [高等教育]高二生物知识点总结(全)
- [高等教育]苏教版数学三年级下册《解决问题的策略
- [高等教育]仪器分析课程学习心得
- [高等教育]2017年五邑大学数学与计算科学学院333
- [高等教育]人教版七年级下册语文第四单元测试题(
- [高等教育]2018年秋七年级英语上册Unit7Howmuchar
- [高等教育]2017年八年级下数学教学工作小结
- [高等教育]湖南省怀化市2019届高三统一模拟考试(
- [高等教育]四年级下册科学_基础训练及答案教材
- [高等教育]城郊煤矿西风井管路伸缩器更换施工安全
- [高等教育]昆八中20182019学年度上学期期末考试
- [高等教育]项目部各类人员任命书
- [高等教育]上市公司经营水务产业的模式
- [高等教育]人教版高二化学第一学期第三章水溶液中
- [高等教育]【中考物理第一轮复习资料】四.压强与
- [高等教育]金坑水电站报废改建工程机电设备更新改
- [高等教育]高中生物教学工作计划简易版
- [高等教育]2017年西华大学攀枝花学院(联合办学)44
- [高等教育]最新整理超短爆笑英文小笑话大全
- 优秀教师继续教育学习心得体会
- 阳历到阴历的转换
- 留守儿童教育案例分析
- 华师17春秋学期《玩教具制作与环境布置
- 测速传感器新型安装装置的现场应用
- 人教版小学数学三年级下册第四单元
- 创业个人意向书
- 山东省潍坊市2012年高考仿真试题(三)
- [恒心][好卷速递]四川省成都外国语学校
- 多少人错把好转反应当成了病情加重处理
- 中外广播电视史复习资料整理
- 江苏省扬州市江都区宜陵镇中学2014-201
- 工程造价专业毕业实习报告
- 广西师范学院心理与教育统计
- aympkrq基于 - asp的博客网站设计与开
- 建筑业外出经营相关流程操作(营改增后
- 人治 德治 法治
- [精华篇]常识判断专项训练题库
- 中国共产党为什么要实行民主集中
- 小学数学第三册第一单元试卷(A、B、C




