汇编实验讲课PPT微机原理实验课演示文稿

上传人:飞*** 文档编号:4033938 上传时间:2017-08-06 格式:PPT 页数:65 大小:510.50KB
返回 下载 相关 举报
汇编实验讲课PPT微机原理实验课演示文稿_第1页
第1页 / 共65页
汇编实验讲课PPT微机原理实验课演示文稿_第2页
第2页 / 共65页
汇编实验讲课PPT微机原理实验课演示文稿_第3页
第3页 / 共65页
汇编实验讲课PPT微机原理实验课演示文稿_第4页
第4页 / 共65页
汇编实验讲课PPT微机原理实验课演示文稿_第5页
第5页 / 共65页
点击查看更多>>
资源描述

《汇编实验讲课PPT微机原理实验课演示文稿》由会员分享,可在线阅读,更多相关《汇编实验讲课PPT微机原理实验课演示文稿(65页珍藏版)》请在金锄头文库上搜索。

1、微机原理实验课,西北工业大学计算机学院实验教学中心,MASM 611使用简要说明,Microsoft宏汇编程序MASM611有建立汇编语言所需的全部工具,我们简要介绍其集成开发软件PWB。PWB是集汇编程序的编辑、编译、连接、调试、运行于一体的综合软件。 运行 PWB 在计算机 C:盘上具体使用方法结合实例介绍,软件实验部分,本部分共进行4次实验,实验内容如下:,实验一 BCD码的运算,一实验目的 1.熟悉在MASM611集成环境下建立、汇编、链接、调试和运行汇编语言程序的全过程。 2.掌握汇编语言程序结构中数据段、堆栈段、代码段定义及内存分配方法。 3.学会DEBUG调试程序主要命令的使用方

2、法。 4.掌握用组合BCD码表示数据的方法,并熟悉其加、减、乘、除运算。二实验内容 1.多位十进制数加法。 2.两位十进制数乘法。三实验要求 1.多位十进制数加法:在内存中以DATA1和DATA2为首址,各分配5个字节单元,分别存入两个8位组合BCD码数据(低位在前),将两数相加,结果送回到DATA2处。 2.两位十进制数乘法:将被乘数和乘数以组合BCD码形式分别存放于DATA1和DATA2定义的节单元中,经乘法运算,乘积存入DATA3定义的两个内存单元中。 3.用DEBUG调试程序、查看运算结果,进行手工验证;并且用DEBUG修改数据,重新执行。,关于BCD码、十六进制数的说明,BCD码用4

3、位二进制编码表示一个十进制数,又称二十进制数。由于这4位二进制数的权值为8421,故也称BCD码为8421码。在计算机里,用一个字节的低4位表示一位十进制数非组合BCD码;用一个字节表示两位十进制数组合BCD码。,在计算机里,所有的运算都是按二进制进行的,运算结果是二进制数(即十六进制数) 。为了把十六进制运算结果转换成十进制,汇编语言中引进了组合BCD码加法调整指令DAA和减法调整指令DAS。,DAA 加法的十进制调整指令 该指令之前要执行ADD或ADC。调整方法:若AF为1,或AL中的低4位是十六进制的A F,则AL内容加06H,AF置1; 若CF为1,或AL中的高4位是十六进制的A F,

4、则AL内容加60H,CF置1。 AF 辅助进位标志 CF进位标志,多位十进制数加法,.model small .data data1 db 11h,22h,33h,44h,00h data2 db 99h,88h,77h,66h,00h .code .startup mov si,offset data1 ;设指针 mov di,offset data2 clc ;清进位 mov cx,5 ;设加法次数lop: mov al,si ;取第一加数 adc al,di ;取第二加数 daa ;十进制调整 mov di,al ;结果存入指定单元 inc si ;指针加1 inc diloop lop

5、 ;循环 .exit end,流程图:,开始,清进位,设加法次数,十进制调整; 部分和回送,指向下单元数,AL AL+第二加数,CX-1=0?,结束,Y,N,两位十进制数乘法,.model small.586.datadata1 db 34hdata2 db 56hdata3 dw 1 dup (?).code.startup mov bl,data1 ;第一乘数转换成16进制数 mov bh,bl and bh,0fh and bl,0f0h mov cL,4 shr bl,cL mov al,10 mul bl add al,bh movzx cx, al ;置加法次数计数器,mov bl

6、,data2 ; 第二乘数做BCD 加法,加第一乘数次 mov ax,0 clclop: add al,bl daa xchg ah,al adc al,0 daa xchg ah,al loop lop mov data3,ax;积送乘积存储单元 nop nop nop .exit end,两位十进制数乘法流程图:,开始,分离出第一乘数的“个位”,分离出第一乘数的“十位”,第一乘数的“十位”移到“个位”后,再乘 10,合成得到16进制的第一乘数,BCD码转换成16进制数,1,1,清进位,第二乘数做加法次数,十进制调整,AL与AH内容交换,AL与AH内容交换,十进制调整,CX-1=0?,N,Y

7、,存储结果,结束,一、实验目的 掌握循环结构程序的设计、调试。二、实验内容1 多字节无符号数加法。2 设计一软件延时器,并在屏幕上显示软件延时倒计时过程。三、实验要求1多字节无符号加法:在DATAS中存放10个双字节无符号数, 用循环结构设计程序,通过程序运算,把这10个双字节无符号 数相加,其和存入紧邻加数之后的四个单元中。2软件延时器:做一延时约1秒的软件延时器,在屏幕上按9、 8、0顺序显示软件延时倒计时过程。,实验三 循环结构程序,有关问题的说明,循环程序的三个组成部分: 循环初始状态设置。设置循环次数、为循环体正常工作建立初始状态等。 循环体。循环工作的主体,包含循环的工作部分和修改

8、部分。循环的工作部分是为完成程序功能而设计的程序段;循环的修改部分是为保证每一次重复时,参加执行的信息能发生有规律的变化而建立的程序段。 循环控制部分。选择一个循环控制条件来控制循环的运行和结束。循环程序的结构:,循环初始状态,循环控制条件,循环体,Y,N,循环初始状态,循环体,循环控制条件,Y,N,DO-WHILE结构,DO-UNTIL结构,子程序结构: procedure name PROC Attribute RET procedure name ENDP Attribute,NEAR 调用程序和过程在同一个代码段中,FAR 调用程序和过程不在同一个代码段中,系统功能调用:系统功能调用是

9、DOS为方便汇编语言编写而提供的一组约80个功能调用的常用子程序,它分为设备管理、文件管理和目录管理等几类。DOS规定用软中断指令 INT 21H 进入各功能调用子程序的总入口,再为每个功能调用规定一个功能号,以便进入相应各用子程序的入口。系统功能调用的使用方法:,EX1:从键盘输入单字符 MOV AH,01H ;1号功能调用 INT 21H将键盘输入字符的ASCII码送到 AL。EX2:从键盘输入字符串 BUF DB 10 DUP(?) LEA DX,BUF MOV AH,0AH ;0A号功能调用 INT 21H将键盘输入的字符串写到 RAM 中去,击回车键表示字符串结束。字符数与予留空间的

10、关系为:少补零多丢失。EX3:输出单字符 MOV DL,M MOV AH,02H; 2号功能调用 INT 21H将 DL 中字符从屏幕上显示出来。,EX4:输出字符串 BUF DB Thank you MOV DX,OFFSET BUF MOV AH,09H;9号功能调用 INT 21H将 指定 RAM 缓冲区中的字符串从屏幕上显示出来。 为字符串结束符。EX5:直接控制台输入/输出单字符 MOV DL,0FFH;DL=0FFH时, MOV AH,06H; 6号功能调用 INT 21H; 将键盘输入字符 送到 AL 中。 MOV DL,M; DL 0FFH时, MOV AH,06H; 6号功能

11、调用 INT 21H; 将 DL 中字符送到 屏幕上显示。,多字节无符号数加法,.MODEL SMALL .586 .DATADATAS DW 1111H,2222H,3333H,4444H,5555H DW 6666H,7777H,8888H,9999H,0AAAAHRESULT DD 1 DUP(?) .CODE.STARTUP MOV SI,OFFSET DATAs;设指针 MOV CX,10;累加次数 MOV EAX,0;清累加器 CLC;清进位LOP: MOV BX,SI;取加数到BX MOVZX EBX,BX ;将BX扩展成32位 ADC EAX,EBX;带进位加 INC SI;改

12、指针 INC SI LOOP LOP;循环加 MOV RESULT,EAX;存结果 .EXIT END,开始,清进位,将BX扩展为32位,SI 指向下一加数,CX-1=0?,N,Y,存结果,结束,软件延时器,.model small.data data db 20h,20h,20h,20h,20h,39h,0dh,$.code.startupmov cx,09h; 设循环次数lop:mov ah,09h;显示功能调用lea dx,dataint 21hcall near ptr delay;调用延时子程序dec data+5;修改显示数字loop lop.exitDelay proc near uses cx ;延时子程序 mov bx,06ffh ;设第二时常数Delay1 :mov cx,0h loop $ ;自身循环CX次 dec bx ;第二时常数减1 jnz delay1 ;不为零循环 retDelay endpend,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号