您好,欢迎来到汇意旅游网。
搜索
您的当前位置:首页东北大学计算机硬件技术基础实验报告

东北大学计算机硬件技术基础实验报告

来源:汇意旅游网

东北大学计算机硬件技术基础实验报告

东北大学

专业班级:姓名:学号:

实验题目:日期:2013.11.9

实验目的:

(1)掌握顺序程序设计方法;

(2)学习数据传送及算术和逻辑运算指令的用法;

(3)熟悉在PC上建立、汇编、连接、调试和运行8086汇编语言程序的过程。

实验内容:

编制程序,将字节变量BVAR中的压缩BCD数转换成二进制数,并存入原变量中。

在编写程序前,首先要确定转换算法。第一步,取压缩BCD数的十位;第二步,计算十位数乘以10;第三步,取个位数相加。实验步骤:

(1)输入源程序如下:

DSEGSEGMENT;数据段

BVARDB74H

DSEGENDS

CSEGSEGMENT;代码段

ASSUMECS:CSEG,DS:DSEG

START:MOVA_,DSEG;段寄存器初值

MOVDS,A_

MOVAL,BVAR

MOVCL,4

SHRAL,CL;取高4位

MOVAH,10

MULAH;乘10

ANDBVAR,0FH;取低4位

ADDBVAR,AL;相加

MOVAH,4CH

INT21H;程序结束退出

CSEGENDS

ENDSTART

(2)保存源程序,执行masm汇编源程序,生成.obj目标文件,结果无错误。

(3)执行link连接程序,生成.e_e可执行文件,结果无错误。

(4)执行debug调试程序,使用D参数指令,在BVAR对应的存储单元中得到计算结果H,结果正确.

思考题:程序中求个位数乘以10采用乘法指令MUL实现,而用移位指令也可以实现,请问该如何修改程序

将MOVAH,10

MULAH

改为SALAH,1

MOVCL,AH

SALAH,1

SALAH,1

ADDAH,CL

扩展题:这个程序还有另外一个编制算法,即首先将压缩BCD数转换成非压缩BCD数,然后通过BCD码调整指令将其直接转换成二进制数。请问应该使用哪一个调整指令试编制程序。

DSEGSEGMENT

BVARDB74H

DSEGENDS

CSEGSEGMENT

ASSUMECS:CSEG,DS:DSEG

START:MOVA_,DSEG

MOVDS,A_

MOVAL,BVAR

MOVAH,AL

SHRCL,4

MOVAH,CLANDAL,0FHAAD

MOVBVAR,ALMOVAH,4CHINT21HCSEGENDS

ENDSTART

Copyright © 2019- hids.cn 版权所有 赣ICP备2024042780号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务