汇编语言上机实验三2015李中 下载本文

实验报告

课 程:汇编语言程序设计 专业班级:计算机科学与技术 学号: 姓 名:李中

实验三、顺序结构程序设计实验

一、 实验目的

1、 掌握顺序结构程序的基本设计方法 2、 掌握数据传送指令和算术运算指令的方法 3、 掌握逻辑操作指令和移位操作指令的用法 4、 掌握状态标志操作指令的用法 5、 掌握简单的I/O功能调用 二、 实验要求

1、 熟练掌握DEBUG中的U,D,E,G命令的使用方法

2、 学会利用系统功能调用,来实现键盘输入字符、显示字符的方法 3、 了解、大小写字母及数字在计算机中的表示方法及转换方法 三、 实验内容

1、 编写十六进制数的乘法程序。要求从键盘上输入两个一位十六进制的数据,成绩存

入SUM单元

2、 编写程序,求表达式5X+Y的值,要求:X、Y的值从键盘中输入,X、Y均为一位

十六进制的数据,将计算结果存入SUM单元中。

3、 编写程序、要求表达式Y=AX^2+BX+C的值,已知A、B、C的值分别存在DATAA、

DATAB、DATAC字节单元中,X的值存放在DATAX字节的单元中,计算结果存入DATAY字节单元(A、B、C、X均为0~9之间的数)。要求在DEBUG下多次修改X的值,观察计算结果。

四、 解题思路

利用INT 21H的1号功能从键盘上输入数据,将数据转换为表头的偏移量保存在通用寄存器中,完成各项计算。利用XLAT将结果的ASCⅡ码保存在内存单元和DL寄存器中,然后利用INT21 的2号功能将其输出到屏幕中。一次只能显示4位二进制数,所以一个字节需要分两次才能显示出来。 五、 编程实现 1、

SSEG SEGMENT STACK STK DB 20 DUP (0) SSEG ENDS DSEG SEGMENT SUM DB ?

HTAB DB '0123456789ABCDEF' DSEG ENDS CSEG SEGMENT

ASSUME CS:CSEG,DS:DSEG ASSUME ES:DSEG,SS:SSEG START: MOV AX,DSEG MOV DS,AX MOV ES,AX MOV AX,SSEG MOV SS,AX

MOV SP,LENGTH STK MOV AH,01H INT 21H

SUB AL,30H MOV CH,AL MOV DL,'*' MOV AH,02H INT 21H MOV AH,01H INT 21H SUB AL,30H MUL CH MOV SUM,AL MOV CH,AL MOV DL,'=' MOV AH,02H INT 21H MOV AL,CH MOV CL,4 SHR AL,CL LEA BX,HTAB XLAT

MOV DL,AL MOV AH,02H INT 21H AND CH,0FH MOV AL,CH XLAT

MOV DL,AL MOV AH,02H INT 21H MOV DL,'H' MOV AH,02H INT 21H MOV AH,4CH INT 21H CSEG ENDS END START

· 编辑: