nullnull实验二掌握实验方法、过程、
和程序调试技术 实验目的实验目的
编辑汇编程序、建立ASM文件
MASM和LINK的使用
执行程序
用DEBUG调试程序实验安排实验安排
1、教师讲解源程序从写出到执行的步骤
2、教师讲解3个实例
3、3个实例的上机练习
4、用DEBUG熟悉程序调试。nullMASM的软件环境2.1运行环境运行环境
最简单的环境:汇编程序masm.exe和连接程序link.exe
null一个源程序
从写出到执行的过程2.2一个源程序从写出到执行的过程一个源程序从写出到执行的过程第一步:编写汇编程序
使用文本编辑器,如记事本、Ultraedit等,用汇编语言写汇编程序,得到ASM文本文件,计算机无法执行。
第二步:对源程序进行编译
宏汇编MASM程序将ASM文本文件转为目标码(.obj)文件。
汇编程序检查语法,列出错误原因,便于
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
、修改。
第三步:连接
LINK程序把有关模块连接在一起,得到可执行(.exe)文件
第四步:执行可执行文件
较简单的程序可通过分析源程序找出错误。对较复杂的程序,可借用调试程序(如DEBUG)调试查找错误。null编写汇编程序编写汇编程序假设写一段源程序:
1 定义一个段
2 在段内写汇编指令,实现任务
3 指出程序在哪里结束
4 程序返回ExampleMASMMASM进入DOS方式
运行masm.exeExampleLINKLINK连接:Example简化方式进行编译和连接 简化方式进行编译和连接 忽略中间生成的文件
使用分号ExampleDEBUG调试和跟踪DEBUG调试和跟踪Debug将程序载入内存,置CS:IP指向程序入口。DEBUG调试和跟踪DEBUG调试和跟踪DEBUG相关命令都可使用null顺序程序实验实验2.3顺序程序实验内容顺序程序实验内容
【实验1】查
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
求值
【实验2】BCD码转换
【实验3】表达式计算null查表求值2.3.1介绍介绍实验目的:通过查表求值实验,理解掌握顺序程序
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
方法
实验内容:已知某班学生英语成绩按学号(从1开始)从小到大的顺序排列在TAB表里,要查的学生学号放在变量NO中,查表结果放在变量ENGLISH中。
提示:换码指令XLAT是字节查表转换指令,可以根据表中元素的下标,查出表中相应元素的内容。换码指令XLAT换码指令XLAT换码指令用于将BX指定的缓冲区中、AL指定的位移处的数据取出赋给AL。
格式:
两种格式等效。第一种格式中tabel表示首地址,只是为了便于阅读而加上的;第2中格式也可以用XLATB助记符。实际的首地址在BX寄存器中。XLAT tabel
XLAT ;al←ds:[bx+al]换码指令XLAT换码指令XLAT
将首地址为100H的表格缓冲区中的3号数据取出
Examplemov bx,100h
mov al,03h
xlatnull在内存数据段有16进制数的ASCII码表,首地址Hex_table,如图,将0AH转换成ASCII码,可用以下几条指令实现:
MOV BX, OFFSET Hex_tale ;(BX) ←表首址
MOV AL, 0AH ;(AL) ←十六进制数A
XLAT Hex_table ;查表转换介绍介绍实验内容:已知某班学生英语成绩按学号(从1开始)从小到大的顺序排列在TAB表里,要查的学生学号放在变量NO中,查表结果放在变量ENGLISH中。
提示:换码指令XLAT是字节查表转换指令,可以根据表中元素的下标,查出表中相应元素的内容。
在使用该指令前,先建立一个字节表格,并将表的首地址送给BX,表中元素的无符号下标送AL寄存器,即执行XLAT指令后,就是完成[BX+AL]->AL。查表求值流程图查表求值流程图实验内容:
1)已知某班学生英语成绩按学号(从1开始)从小到大的顺序排列在TAB表里
2)要查的学生学号放在变量NO中
3)查表结果放在变量ENGLISH中。查表求值参考源程序查表求值参考源程序查表求值调试状态查表求值调试状态使用DEBUG相关命令运行和查看程序执行情况查表求值调试状态查表求值调试状态执行之后:实验结果:
程序运行前成绩数据在ds:0开始的8个字节中,要查的学号
数据在ds:8开始的1个字节中。
程序运行后的查表结果在ds:9中的数据为:55H nullBCD码转换2.3.2介绍介绍实验目的:通过移位指令完成十进制数转换实验,理解掌握顺序程序设计方法
实验内容:将单元DAT1中的一个非压缩十进制数转换为一个压缩的十进制数,结果保存在字节单元DAT2中。
提示: 什么是BCD码BCD码(Binary-Coded Decimal)BCD码(Binary-Coded Decimal)也称为二进码十进数。是二进制编码的十进制数。
这种编码形式用四个位储存一个十进制的数码,使二进制和十进制之间的转换得以快捷的进行。
十进制0表示为二进制0000
十进制1表示为二进制0001
.......
十进制9表示为二进制1001 BCD码(Binary-Coded Decimal)BCD码(Binary-Coded Decimal)压缩BCD码与非压缩BCD码的区别:
压缩BCD码的每一位用4位二进制表示,一个字节表示两位十进制数。
非压缩BCD码用1个字节表示一位十进制数,高四位总是0000,低4位的0000~1001表示0~9.例如00001000B表示十进制数8. 十进制8表示为二进制00001000B十进制96 表示为二进制10010110B介绍介绍实验内容:将单元DAT1中的一个非压缩十进制数转换为一个压缩的十进制数,结果保存在字节单元DAT2中。
提示:每位非压缩的十进制数占用一个字节,每两位压缩的十进制数占用一个字节,因此在转换过程中,利用移位指令将非压缩的十进制数中的“0”移出即可。BCD码转换流程图BCD码转换流程图实验内容:
1)将单元DAT1中的一个非压缩十进制数转换为一个压缩的十进制数
2)结果保存在字节单元DAT2中。BCD码转换参考源程序BCD码转换参考源程序BCD码转换
调试状态BCD码转换
调试状态实验结果:
程序运行前数据在ds:0开始的2个字节中:06 05
程序运行后数据在ds:2开始的1个字节中,则ds:2中的数据为:56 null表达式计算2.3.3介绍介绍实验目的:通过计算表达式值实验,理解和掌握顺序设计方法.
实验内容:编写程序,计算以下表达式的值。
x,y,z,v 均为带符号数据,要求结果放在变量w中。
提示: x,y,z,v 均为带符号数据,在进行表达式计算时要注意字扩展指令CWD的使用。首先需将z扩展成双字,完成加法运算,其次要将v扩展成双字,完成减法运算。w = ( v - ( x * y + z – 460 )) / x符号扩展指令符号扩展指令CBW ;AL的符号扩展至AH
;如AL的最高有效位是0,则AH=00
;AL的最高有效位为1,则AH=FFH。AL不变CWD ;AX的符号扩展至DX
;如AX的最高有效位是0,则DX=00
;AX的最高有效位为1,则DX=FFFFH。AX不变符号扩展指令常用于获得倍长的数据 不影响标志位符号扩展的概念符号扩展的概念符号扩展指用一个操作数的符号位(即最高位)形成另一个操作数,后一个操作数的各位是全0(正数)或全1(负数)。符号扩展不改变数据大小Examples数据 F0H(表示有符号数-16D)1111 0000
最高位D7为1,符号扩展后高8位都是1,成为fff0H(仍表示有符号数 -16D)1111 1111 1111 0000 数据64H(表示数据100D)0110 1000
最高位D7为0,符号扩展后高8位都是0,成为0064H(仍表示数据100D) 0000 0000 0110 1000符号扩展符号扩展
mov al,80h
cbw
add al,255
cbw Examples写出指令执行后目的操作数中的结果符号扩展符号扩展
mov al,80h ;al=80h
cbw ;ax=ff80h
add al,255 ;al=7fh
cbw ;ax=007fhExamples写出指令执行后目的操作数中的结果符号扩展符号扩展mov al,80h
cbw
add al,255
cbw表达式计算流程图表达式计算流程图实验内容:
1)编写程序,计算以下表达式的值
2)结果放在变量w中。w = ( v - ( x * y + z – 460 )) / x表达式计算
参考源程序表达式计算
参考源程序表达式计算调试状态表达式计算调试状态实验结果:
程序运行前数据在ds:0开始的8个字节中。
程序运行后:商在AX中,AX=FEF5
余数在DX中,DX=FF74,则:
ds:0009 - ds:000C中的数据为: F5 FE 74 FF null实验要求2.4实验要求实验要求
理解和掌握顺序设计方法
熟悉和掌握已学的指令
熟练用DEBUG的命令进行调试