电子工程学院 微机原理与接口技术实 验 张秀贤 电子工程学院
微机原理与接口技术实 验 张秀贤 电子工程学院
布我晚悦 实验一求最大值程序 实验目的 1.掌握条件判断指令的用法 2.掌握循环程序的设计方法 3.学习在屏幕上显示字符的方法 4.学习在PC机上建立、汇编、链接、调试和运行汇编语言的过程 实验内容 在首地址为DATA1的数组中找出最大值,并在屏幕上显示出来 电子工程学院
实验一 求最大值程序 一、实验目的 1.掌握条件判断指令的用法。 2.掌握循环程序的设计方法。 3.学习在屏幕上显示字符的方法。 4.学习在PC机上建立、汇编、链接、调试和运行汇编语言的过程。 二、实验内容 在首地址为DATA1的数组中找出最大值,并在屏幕上显示出来
布我晚悦 实验一求最大值程序 程序框图 段寄存器和堆栈初始化 数组首地址→S 数组长度→C Cx→Cx-14 取第一个数据到AL中以 与下一个数据相比较心 前一个数大吗 将大数换入AL中 SI4-SI-+IJ N 将大转化为ASI码 显示最大值心 远回D0s
实验一 求最大值程序 三、程序框图
布我晚悦 实验一求最大值程序 四、实验步骤及要求 (1)输入程序,进行调试,运行出求最大值程序的结果 (2)熟悉TD调试环境下,在T环境下单步运行本程序,以加深对程序 指令的理解。 (3)如何把程序改成求最小值的程序 (4)如果为有符号数,其最大值、最小值怎么求取 电子工程学院
实验一 求最大值程序 四、实验步骤及要求 (1)输入程序,进行调试,运行出求最大值程序的结果。 (2)熟悉TD调试环境下,在TD环境下单步运行本程序,以加深对程序 指令的理解。 (3)如何把程序改成求最小值的程序。 (4)如果为有符号数,其最大值、最小值怎么求取
布晚要险一求最大值程序 五、程序理解介绍 要理解这个程序,需要理解以下几点: 1.程序完成的任务有:定义及初始化、求最值、显示最值 2.如果显示AL=FAH,先AL暂存BL,对AL逻辑右移4位,再判断是不是大于9,若 大于9加37H,否则加3OH,然后送去显示。取出暂存的BL送AL,然后与0FH相 与,再判断是不是大于9,若大于9加37H,否则加30H,再送去显示 3.怎么显示字符?利用INT21H的AH=02H号子功能,显示DL的内容。 4.返回DOS可用INT21H的AH=4CH号子功能。 5宏定义介绍 ISX MACRO X MOV DL, X MOV AH, 02 INT 21H ENDM 电子工程学院
实验一 求最大值程序 五、程序理解介绍 要理解这个程序,需要理解以下几点: 1.程序完成的任务有:定义及初始化、求最值、显示最值。 2.如果显示AL=FAH,先AL暂存BL,对AL逻辑右移4位,再判断是不是大于9,若 大于9加37H,否则加30H,然后送去显示。取出暂存的BL送AL,然后与0FH相 与,再判断是不是大于9,若大于9加37H,否则加30H,再送去显示。 3.怎么显示字符?利用INT 21H的AH=02H号子功能,显示DL的内容。 4.返回DOS可用INT 21H的AH=4CH号子功能。 5.宏定义介绍 DISX MACRO X MOV DL,X MOV AH,02 INT 21H ENDM
布我晚悦 实验一求最大值程序 六、实验程序 CODE SEGMENT ASSUME CS: CODE, DS DATA. SS: STACK DISX MACRO X START: MOV AX STACK MOV DL X MOV SS. AX MOV AH 02 Mov SP, TOP INT 21H MOV AX. DATA ENDM MOv DS, AX STACK SEGMENT MOV DX OFFSET BUF STA DB 512 DUP(?) MOV AH. 09 TOP EQU LENGTH STA INT 21H STACK ENDS MOV SI OFFSET BLOCK DATA SEGMENT MOV CX, LSI] BUF DB MAX NUMBER: ODH, OAH,'$ DEC CX DATAl DB 35H, 07H, OABH, 56H, 12H MOV SI OFFSET DATAl DB 98H OCD. 76H OFAH. OBFH MOV AL, LSI] BLOCK DB 10 X1: INC SI DATA ENDS CMP AL, [SI] JA NEXT s卫AL中定义为最大值 电子工程学院
实验一 求最大值程序 六、实验程序 DISX MACRO X MOV DL,X MOV AH,02 INT 21H ENDM STACK SEGMENT STA DB 512 DUP(?) TOP EQU LENGTH STA STACK ENDS DATA SEGMENT BUF DB 'MAX NUMBER:',0DH,0AH,'$' DATA1 DB 35H,07H,0ABH,56H,12H DB 98H,0CDH,76H,0FAH,0BFH BLOCK DB 10 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,STACK MOV SS,AX MOV SP,TOP MOV AX,DATA MOV DS,AX MOV DX,OFFSET BUF MOV AH,09 INT 21H MOV SI,OFFSET BLOCK MOV CX,[SI] DEC CX MOV SI,OFFSET DATA1 MOV AL,[SI] MAX1: INC SI CMP AL,[SI] JA NEXT MOV AL,[SI];AL中定义为最大值
布我晚悦 实验一求最大值程序 NEXT: LOOP MAXI MAX3: DISX AL MOV BL, AL MOV AH. 4CH MOV CL. 04 INT 21H SHR AL. CI MAX4: ADD AL. 37H CMP AL. 09 JMP MAX2 JA MAX4 MAX5: ADD AL. 37H ADD AL, 30H JMP MAX3 MAX2: DISX AL CODE ENDS mov AL BL END START AND AL. OFH CMP AL. 09 JA MAX5 ADD AL, 30H 电子工程学院
实验一 求最大值程序 NEXT: LOOP MAX1 MOV BL,AL MOV CL,04 SHR AL,CL CMP AL,09 JA MAX4 ADD AL,30H MAX2: DISX AL MOV AL,BL AND AL,0FH CMP AL,09 JA MAX5 ADD AL,30H MAX3: DISX AL MOV AH,4CH INT 21H MAX4: ADD AL,37H JMP MAX2 MAX5: ADD AL,37H JMP MAX3 CODE ENDS END START
布求晚产 实 求最大值程序 七、实验报告要求 (包含预习报告要求和最终报告要求) 1.实验名称 注意实验项目名称应与实验大纲中的实验项目名称相符。 2.实验目的 3实验内容及要求 预习最终 4.程序设计(求最大值) 报告要求报告要求 包含流程图和源程序,源程序必须加必要注释 5实验结果及结果分析 6.实验中出现的问题及解决方法 7.回答思考题 皿asm link 键入*.exe或者* asIl bj Ek. exe 源程序 编辑 编译链接 执行 电子工程学院
实验一 求最大值程序 七、实验报告要求(包含预习报告要求和最终报告要求) 1.实验名称: 注意实验项目名称应与实验大纲中的实验项目名称相符 。 2.实验目的 3.实验内容及要求 预习 最终 4.程序设计(求最大值) 报告要求报告要求 包含流程图和源程序,源程序必须加必要注释。 5.实验结果及结果分析 6.实验中出现的问题及解决方法 7.回答思考题
布我晚庀悦 实验二两个多位十进制数相加的程序 实验目的 1学习宏指令的编写方法。 2学习在屏幕上显示字符串的方法 3学习子程序的调用方法。 4掌握数据传送和算术运算指令的用法 5.掌握多位十进制数加(减)程序的编制方法 6.学习在PC机上建立、汇编、链接、调试和运行 汇编语言的过程。 电子工程学院
实验二 两个多位十进制数相加的程序 一、实验目的 1.学习宏指令的编写方法。 2.学习在屏幕上显示字符串的方法。 3.学习子程序的调用方法。 4.掌握数据传送和算术运算指令的用法。 5.掌握多位十进制数加(减)程序的编制方法。 6.学习在PC机上建立、汇编、链接、调试和运行 汇编语言的过程
布我晚悦 实验二两个多位十进制数相加的程序 实验内容 将两个5位十进制数相加,要求被加数与加 数均以ASC码形式各自顺序存放在DATA1和 DATA2为首的5个内存单元中,结果送DATA3处, 并在屏幕上显示出来。 47193 +28056 75249 LV ADD THO MULBIT DECIMAL NUMBERS A7193+28656=75249 」牡」
实验二 两个多位十进制数相加的程序 二、实验内容 将两个5位十进制数相加,要求被加数与加 数均以ASCII码形式各自顺序存放在DATA1和 DATA2为首的5个内存单元中,结果送DATA3处, 并在屏幕上显示出来。 4 7 1 9 3 +2 8 0 5 6 7 5 2 4 9