一熟悉汇编语言环境及建立汇编的过程齐鲁理工学院.docx
- 文档编号:12412685
- 上传时间:2023-06-05
- 格式:DOCX
- 页数:81
- 大小:980.81KB
一熟悉汇编语言环境及建立汇编的过程齐鲁理工学院.docx
《一熟悉汇编语言环境及建立汇编的过程齐鲁理工学院.docx》由会员分享,可在线阅读,更多相关《一熟悉汇编语言环境及建立汇编的过程齐鲁理工学院.docx(81页珍藏版)》请在冰点文库上搜索。
一熟悉汇编语言环境及建立汇编的过程齐鲁理工学院
微机原理与接口技术指导书
齐鲁理工学院
实验一熟悉汇编语言环境及建立汇编的过程
一、实验目的
1.熟悉汇编语言环境。
2.掌握汇编语言的上机过程。
3.了解汇编语言程序的编程格式。
4.学习数据传送和算术运算指令的用法。
5.熟悉在PC机上建立汇编链接调试和运行汇编语言程序的过程。
二、实验要求
1.通过一个小程序的编写达到以上的实验目的。
2.并完成两个多位十进制数相加的实验。
三、实验原理
1.汇编语言程序的上机过程
用汇编语言编写的程序称为源程序,源程序也不能由机器直接执行,而必须翻译成机器代码组成的目标程序,这个翻译过程称为汇编。
在微型机中,当前绝大多数情况下,汇编过程是通过软件自动完成的,用来把汇编语言编写的程序自动翻译成目标的软件叫汇编程序,汇编过程如下:
2.汇编、连接过程
将两个多位十进制数相加。
要求加数和被加数均以ASCII码形式各自顺序存放在以DATA1和DATA2为首的5个内存单元中(低位在前),结果送回DATA1处。
3.ADC带进位相加指令的功能和指令格式
AAA、DAA、AAS、DAS指令的功能和指令格式
4.伪指令SEGMENT、ENDS、ASSUME、MACRO、ENDM的使用
子程序的定义(PROCNEAR/FARENDP),以及子程序调用和返回指令:
CALL、RET的使用
5.循环指令LOOP的格式以及退出循环的条件
6.中断指令的使用
四、实验步骤
一、学习汇编过程
1.打开编辑环境
2.输入程序
CODESEGMENT
ASSUMECS:
CODE
START:
MOVAL,01H
MOVBL,40H
ADDAL,BL
MOVDL,AL
MOVAH,02H
INT21H
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
3.保存源程序,以.ASM为扩展名。
C:
\MASM\1.ASM
4.建立汇编过程
(1)用宏汇编程序汇编源程序C:
\MASM>MASM1.ASM
汇编程序有3个输出文件【.obj】文件,【.LST】文件,【.CRF】文件,.OBJ文件是我们所需要的文件。
汇编程序还有另外一个重要功能:
可以给出源程序中的错误信息。
(2)用连接程序将OBJ文件转换为可执行的EXE文件C:
\MASM>LINK1.OBJ
4.执行程序:
C:
\MASM>1.EXE
二、完成两个多位十进制数的加法
1.程序框图
2.实验原理实验参考程序
CRLFMACRO;建立回车换行宏
MOVDL,0DH
MOVAH,02H
INT21H
MOVDL,0AH
MOVAH,02H
INT21H
ENDM
DATASEGMENT;数据段
DATA1DB33H,39H,31H,37H,34H;第一个数据(作为加数)
DATA2DB36H,35H,30H,38H,32H;第二个数据(作为被加数)
DATAENDS
CODESEGMENT;代码段
ASSUMECS:
CODE,DS:
DATA,ES:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVSI,OFFSETDATA2
MOVBX,05
CALLDISPL;显示被加数28056
CRLF
MOVSI,OFFSETDATA1
MOVBX,05
CALLDISPL;显示加数47193
CRLF
MOVDI,OFFSETDATA2
CALLADDA;加法运算
MOVSI,OFFSETDATA1
MOVBX,05
CALLDISPL;显示结果
CRLF
MOVAX,4C00H
INT21H
DISPL PROCNEAR;显示子程序段
DS1:
MOVAH,02H
MOVDL,[SI+BX-1];显示字符串中的一个字符
INT21H
DECBX;修改偏移量
JNZDS1
RET
DISPL ENDP
ADDA PROCNEAR
MOVDX,SI
MOVBP,DI
MOVBX,05
AD1:
SUBBYTEPTR[SI+BX-1],30H;将ASCII码表示的数字串
SUBBYTEPTR[DI+BX-1],30H;转化位十六进制的字符串
DECBX
JNZAD1
MOVSI,DX
MOVDI,BP
MOVCX,05;包括进位位共5位
CLC;清进位位
AD2:
MOVAL,[SI]
MOVBL,[DI]
ADCAL,BL;带进位相加
AAA;非组合BCD码的加法调整
MOV[SI],AL;结果送加数区
INCSI
INCDI;指向下一位
LOOPAD2;循环
MOVSI,DX
MOVDI,BP
MOVBX,05
AD3:
ADDBYTEPTR[SI+BX-1],30H;十六进制的数字串转化
ADDBYTEPTR[DI+BX-1],30H;为ASCII码表示的数字串
DECBX
JNZAD3
RET
ADDAENDP
CODEENDS
ENDSTART
3.汇编连接程序生成可执行文件
4.执行程序观察结果
六、拓展练习
编写程序完成两个多位十进制数相减。
要求显示结果格式为:
被减数
减数
相减结果
实验二、汇编语言程序设计
一、实验目的:
1.掌握显示提示信息的方法及接收键盘输入信息的方法,完成字符串匹配程序。
2.掌握字符和数据的显示方法,完成字符和数据的显示程序。
3.了解小写字母和大写字母在计算机内的表示方法,并掌握如何进行转换,完成将键盘输入的小写字母转换成大写字母。
二、实验内容:
1.编写程序,实现两个字符串的比较。
如相同,则显示“MATCH”,否则,显示”NOMATCH”。
2.先显示信息“INPUTSTRING,THEENDFLAGIS$”,再接收字符。
如为非数字字符即非“0——9”,则计数器加1,并显示字符。
如为数字,则直接显示,但不计数。
3.接收键盘字符(以^-C为结束),并将其中的小写字母转变为大写字母,然后进行显示。
三、实验原理
1.DB、DUP、EQU等伪指令的功能以及使用格式;INT21H的09H子功能的功能、工作情况以及使用格式;INT21H的0AH子功能的功能、工作情况以及使用格式;串扫描指令SCASB的功能以及使用格式;入栈、出栈指令PUSH、POP的使用情况。
2.程序跳转指令JMP的功能及用法;比较指令CMP、JB、JBE等指令的功能及用法;循环移位指令ROL的用法及功能;逻辑指令AND的功能及用法。
3.比较指令JA的功能及用法;减法指令SUB的功能及用法。
四、程序框图
五、实验参考程序
1.CRLFMACRO
MOVAH,02H
MOVDL,0DH
INT21H
MOVAH,02H
MOVDL,0AH
INT21H
ENDM
DATASEGMENT
MESS1DB'MATCH',0DH,0AH,'$'
MESS2DB'NOMATCH',0DH,0AH,'$'
MESS3DB'INPUTSTRING1:
',0DH,0AH,'$'
MESS4DB'INPUTSTRING2:
',0DH,0AH,'$'
N
Y
N
Y
N
N
Y
MAXLEN1DB81
ACTLEN1DB?
STRING1DB81DUP(?
)
MAXLEN2DB81
ACTLEN2DB?
STRING2DB81DUP(?
)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK,ES:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVAX,DATA
MOVES,AX;段寄存器及堆栈初始
MOVAH,09H
MOVDX,OFFSETMESS3
INT21H;示输入提示
MOVAH,0AH
MOVDX,OFFSETMAXLEN1
INT21H;接收键入的字符串1
CRLF;回车换行
MOVAH,09H
MOVDX,OFFSETMESS4
INT21H;显示输入提示2
MOVAH,0AH
MOVDX,OFFSETMAXLEN2
INT21H;接收键入的字符串2
CRLF
CLD
MOVSI,OFFSETSTRING1
MOVCL,[SI-1]
MOVCH,00H;字符串的实际字符数送CX
MOVDI,OFFSETSTRING2
REPZcmpsb;将串1中的一个字符和串2中的所有字符作比较
JNZGGG;比较相等转GGG
MOVAH,09H
MOVDX,OFFSETMESS1
INT21H;显示‘MATCH'
JMPPPP
GGG:
MOVAH,09H
MOVDX,OFFSETMESS2
INT21H;显示'NOMATCH'
PPP:
MOVAX,4C00H
INT21H;返回DOS
CODEENDS
ENDSTART
2.CRLFMACRO
MOVAH,02H
MOVDL,0DH
INT21H
MOVAH,02H
MOVDL,0AH
INT21H
ENDM
DATASEGMENT
MESS1DB'INPUTSTRING,THEENDFLAGIS$'
MESS2DB'NON-DIGITALCHARCOUNT=$'
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,ES:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX;;初始化
MOVBX,0000H;;计数值清0
MOVAH,09H
MOVDX,OFFSETMESS1;;显示提示信息
INT21H
MOVAH,02H
MOVDL,'$'
INT21H
CRLF
XXX:
MOVAH,01H
INT21H;;接收键入字符
CMPAL,'$';
JZUUU;;是‘$’字符则转UUU:
CMPAL,0DH;
JNZIII
CRLF;;是回车则回车换行
JMPVVV;
III:
CMPAL,30H
JBYYY
CMPAL,39H
JBEVVV;;非‘0’——‘9’转YYY
YYY:
INCBX;;计数值加1
VVV:
JMPXXX
UUU:
CRLF
MOVAH,09H
MOVDX,OFFSETMESS2
INT21H;;显示表头
MOVAX,BX
CALLDISP;;显示结果
MOVAH,02H
MOVDL,'H'
INT21H;;十六进制数标志
MOVAH,4CH
INT21H
DISPPPROCNEAR;;显示子程序,按十六进制数方式显示AL中的数
MOVBL,AL;;AL中数送BL
KKK:
MOVDL,BL
MOVCL,04
ROLDL,CL
ANDDL,0FH
CALLDISPL;;显示字节高位
MOVDL,BL
ANDDL,0FH
CALLDISPL;;显示字节低位
RET;
DISPPENDP
DISPLPROCNEAR
ADDDL,30H;;将数值转为对应的ASCII码
CMPDL,3AH
JBDDD;;是‘0’——‘9’转DDD
ADDDL,27H;;是‘A’——‘F’
DDD:
MOVAH,02H
INT21H;;显示DL中字符
RET
DISPLENDP
DISPPROCNEAR;;显示子程序,按十六进制数方式显示AX中的数
PUSHAX;;入栈保存
MOVAL,AH
CALLDISPP;;显示高字节
POPAX
CALLDISPP;;显示低字节
RET;
DISPENDP
CODEENDS
ENDSTART
3.DATASEGMENT
BUFDB82DUP(?
)
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,ES:
DATA
START:
MOVAX,DATA
MOVDS,AX
MOVES,AX;;段寄存器初始化
MOVBX,OFFSETBUF;;BX指向字符行缓冲区首址
KKK:
MOVSI,00H;;指针SI清0
GGG:
MOVAH,01H;;接收键入字符
INT21H
CMPAL,03H
JZPPP;;是CTRL-C键则转结束
CMPAL,0DH
JZBBB;;是回车键则转BBB
CMPAL,61H
JBTTT
CMPAL,7AH
JATTT;;不是小写字母转TTT
SUBAL,20H;;小写字母转化为大写字母
TTT:
MOV[BX+SI],AL;;存入字符行缓冲区中
INCSI;;指针加1
JMPGGG
BBB:
MOV[BX+SI],AL
MOVAL,0AH
MOV[BX+SI+1],AL;;加入换行符
MOVAL,'$'
MOV[BX+SI+2],AL;;再加一个'$'标志字符
MOVAH,09H
MOVDX,BX
INT21H;;显示转换后的字符串
JMPKKK;
PPP:
MOVAH,4CH
INT21H
CODEENDS
ENDSTART
六、实验步骤
1.按实验要求编写程序
2.汇编连接程序生成可执行文件
3.执行程序观察结果
七、拓展练习
1.编写程序,实现两个字符串的比较。
如字符长度相同并且对应字符顺序相同,则显示“MATCH”,否则,显示“NOMATCH”。
2.编写程序,先显示信息“INPUTSTRING,THEENDFLAGIS$”,再接收字符。
如为数字字符即为“0——9”,则计数器加1,并显示数据。
如为数字,则直接显示,但不计数。
3.编写程序,接收键盘字符(以^-C为结束),并将其中的大写字母转变为小写字母,然后进行显示。
实验三系统认识实验
一、实验目的
1、熟悉实验设备,了解THWJ-1型微机原理实验箱的性能特点,熟悉实验环境。
2、掌握基本电路的电路原理、硬件操作的各功能键的使用方法;熟悉实验的软件系统,能对该实验平台进行熟练的操作。
3、了解实验中的连线方法、基本的硬件电路的调试方法。
二、实验内容及步骤:
1、系统概述
1.1系统主要特点
仪器运行环境:
本仪器在直流5V、±12V电源驱动下单机运行。
仪器性能特点:
采用主频4.77MHz的8088为CPU,并以最小工作方式构建系统。
系统基本内存为一片62256,地址范围00000~07FFFH,其中00000~00FFFH2K字节为监控占用,监控程序和软硬件实验程序存放于一片27512,地址范围F8000~FFFFFH。
自带键盘、显示器、单机运行。
仪器配有常用I/O接口芯片,如A/D转换芯片0809、D/A转换芯片0832、定时/计数器芯片8253、中断控制芯片8259、串行口芯片8250、8251、并行可编程I/O芯片8255、并行I/O芯片如D触发器和驱动器以及直接存贮芯片8237等。
掌握通用电路的工作原理,并完成以下内容:
由逻辑开关电平控制LED灯的亮灭,观察开关状态的高低电平变化,LED亮灭分别需要获得何种电平信号。
单次脉冲电路控制LED,通过观察LED的亮灭分析两种单次脉冲的高低电平变换情况。
掌握试验箱上功能键的使用:
监控程序控制仪器以键盘操作方式运行调试实验程序。
仪器一经上电后,数码显示器显示监控提示符“P.”。
1.2系统资源分配
8088有1兆存储空间,系统提供用户使用的空间为00000H-0FFFFH,用于存放、调试实验程序。
2系统硬件组成
(1)LED发光二极管指示电路:
实验台上包括16只发光二极管及相应驱动电路。
见图3-1,Ll-L16为相应发光二极管驱动信号输入端,该输入端为低电平“0”时发光二极管亮。
(箱式实验机简化为12只发光二极管)
图3-1
(2)逻辑电平开关电路:
见图3-2。
实验台上有8只开关Kl-K8,与之相对应的K1-K8各引线孔为逻辑电平输出端。
开关向上拨相应插孔输出高电平“l”,向下拨相应插孔输出低电平“0”。
图3-2
(3)单脉冲电路:
实验台上单脉冲产生电路如图3-3,标有“
”和“
”的两个引线插孔为正负单脉冲输出端。
AN0为单脉冲产生开关,每拨动一次来回产生一个单脉冲。
图3-3
(4)分频电路:
该电路由一片74LS393组成,见图3-4。
T0-T7为分频输出插孔。
该计数器在加电时由RESET信号清零。
当脉冲输入为8.0MHZ时,T0-T7输出脉冲频率依次为4.0MHZ,2.0MHZ,1.0MHZ,500KHZ,250KHZ,125KHZ,62500HZ,31250HZ。
图3-4
(5)脉冲发生电路:
实验台上提供8MHZ的脉冲源,见图3-5,实验台上标有8MHZ的插孔,即为脉冲的输出端。
图3-5
(6)485接口电路:
图3-6
(7)系统通讯接口电路
图3-7
(8)数码管显示电路
图3-8
(9)键盘电路
图3-9
2、键盘监控程序的功能和操作方法
3.1键盘显示
⑴ 系统配备6位LED显示器,左边4位显示地址,右边2位显示该地址内容。
⑵ 系统具有24个注塑键盘,左边l6个是数字键,右边8个是功能键。
在键盘监控状态下用户可以通过一组键命令完成下列操作
· 读写寄存器内容
· 读写存储器内容
· EPROM传送
· 断点设置/清除
· 通过单步、断点、连续等功能来调试运行实验程序。
3.2功能键操作说明一缆表
3.3 监控程序命令及操作
具体的键操作过程
监控指示符“P.”状态下,寄存器的初始值如下:
SP=0683H,CS=0000H,
DS=0000H,SS=0000H,ES=0000H,IP=1000H,FL=0000H。
“P.”状态下,监控命令才会有效,此时段地址缺省值为0000H。
(1)存贮器单元内容的显示及修改
操作:
××××MRW
●“P.”状态下,输入4位存贮单元地址,按MRW键,则显示2位该单
元内容;
●按数键可修改内容;
●按NEXT键,地址加1,地址单元内容刷新;
●按LAST键,地址减1,地址单元内容刷新;
●按MON键,返回“P.”状态。
(2)寄存器内容的显示及修改
操作:
×REG
●“P.”状态下,先输入寄存器代号,再按REG键,显示寄存器名及其内
容;
●按数键可修改寄存器的内容;
●按NEXT键,依次显示下一个寄存器名及其内容;
●按LAST键,依次显示上一个寄存器名及其内容;
●按MON键,返回“P.”状态。
代号0123456789ABCD
寄存器名AXBXCXDXSPBPSIDICSDSSSESIPFL
数据寄存器名AbcdSPBPSIDICSDSSSESIPFL
(3)I/O口读
操作:
××××IOR
●“P.”状态下,输入4位口地址,再按IOR键,则显示其状态数据;
●按IOR键再次读入该口地址的状态数据;
●按NEXT键,口地址加1,状态数据刷新;
●按LAST键,口地址减1,状态数据刷新;
●按MON键,返回“P.”状态。
(4)I/O写
操作:
××××IOW
●“P.”状态下,先输入4位口地址,再按IOW键,则显示其内容为00,
此时输入数据,I/O状态会随写入的内容而变化;
●按NEXT键,口地址加1;
●按LAST键,口地址减1;
●按MON键,返回“P.”状态。
(5)数据块移动
操作:
××××F1××××F2××××MOVE
●“P.”状态下,先输入4位源首址,再按F1键,再输入4位源末址,按
F2键,再输入4位目标块首地址,按MOVE键,则开始数据传送,传送结束
返回监控“P.”状态。
(6)单步运行
操作:
有三种状态都可以执行单步操作(段地址固定为0000H)。
●“P.”状态下,按STEP键,从起始地址IP=1000H开始,单步执行一条
指令;
●存储器读写状态,按STEP键,从当前存贮器地址开始单步执行一条指
令;
●在输入4位起始地址的状态下,按STEP键则从起始地址开始单步执行
一条的指令,然后显示下一条指令的地址及其内容。
(7)断点运行
操作:
××××F2××××EXEC
●“P.”状态下,先输入4位断点地址,按F2键,再输入4位起始地址,
按EXEC键,程序从起始地址开始运行,显示器显示“┏”执行符,程序停在
断点处后显示断点地址和其内容,同时保护所有寄存器的值。
当程序不能运行到断点(俗称“跑飞”)。
可按STOP键,中止程序运行,
从显示器确定程序运行到何处,同时必须用存贮器读写功能键MRW来恢复断
点处的一字节内容。
注意EPROM中的实验程序不能以断点方式运行。
(8)连续运行
操作:
有三种状态,可以进入连续运行
●“P.”状态下,按EXEC键,从地址CS=0000H,IP=1000H开始连续执
行程序;
●存储器读写状态下,按EXEC键,从当前存贮器地址开始,连续执行
程序(开始时CS=0000H);
●先输入4位起始地址,按F1键,再输入4位偏移地址,最后按EXEC
键,则从设定的段地址和偏移地址开始程序,当用户返回监控,可用MON键
或Reset键。
注意Reset键会初始化各寄存器。
三、实验电路的硬件调试
1)测发光二极管电路
紧锁线一端接地,另一端点击L1~L16插座,点击时发光二极管亮。
紧锁线一端接Ki(Ki下拨),另一端点击L1~L16插座,现象同上。
2)数码显示器与键盘电路
开机显示“P.”,按数字键,功能键,观察显示是否正确。
3)测拨动开关电路
用扁平电缆
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 熟悉 汇编语言 环境 建立 汇编 过程 齐鲁 理工学院