您的当前位置:首页正文

计算机硬件技术基础

2021-11-12 来源:易榕旅网


本科实验报告

课程名称: 计算机硬件技术基础

实验项目: 汇编语言程序设计:综合程序设计实验

实验地点: 致远楼B303

专业班级: 软件1229班 学号: 2012005829

学生姓名: 田亚鹏

指导教师:

2014年 05月 09日

1 / 6

一、 实验目的和要求:

1.通过分支程序设计、循环程序设计实验,掌握无条件转移指令、条件转移指令的格式、功能及使用方法。

2.掌握分支程序的结构、单分支和多分支程序的设计方法。 3.了解循环程序的基本结构和控制循环的方法。 4.掌握通过DOS中断调用使用键盘和显示器的方法。

二、实验内容和原理

1.编写一个汇编程序,要求对键盘输入的大写字母用小写字母显示出来,键盘输入的小写字母用大写字母显示出来。

2. 编写一个汇编程序,使得从键盘上输入十个以内的字符,以输入空格结束,然后按数字、字母和其它符号三类统计各自的个数,在屏幕上依次显示出统计结果。

三、主要仪器设备:HP6470b笔记本电脑 四、操作方法与实验步骤:

1.编写一个汇编程序,要求对键盘输入的大写字母用小写字母显示出来,键盘输入的小写字母用大写字母显示出来。

STACK SEGMENT STACK DB 200 DUP(0) STACK ENDS DATA SEGMENT X DB 0; DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV AH,01H INT 21H CMP AL,'a'

2 / 6

JNL NEXT MOV X,'a'-'A' ADD X,AL MOV AH,02H MOV DL,X INT 21H MOV AH,4CH INT 21H

NEXT: MOV X,'A'-'a' ADD X,AL MOV AH,02H MOV DL,X INT 21H MOV AH,4CH CODE ENDS END START

2. 编写一个汇编程序,使得从键盘上输入十个以内的字符,以输入空格结束,然后按数字、字母和其它符号三类统计各自的个数,在屏幕上依次显示出统计结果。 STACK SEGMENT STACK DB 200 DUP(0) STACK ENDS DATA SEGMENT X DB '0' DATA ENDS CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX SUB AX,AX MOV BX,0

3 / 6

MOV DX,0 MOV CX,10 AA1: CMP CX,0 JZ STOP MOV AH,1 INT 21H CMP AL,'0' JB CC2 CMP AL,'9' JA CC1 INC BH JMP NEXT1 CC1: CMP AL,'A' JB CC2 CMP AL,'Z' JB NEXT CMP AL,'a' JB CC2 CMP AL,'z' JA CC2

NEXT: INC BL JMP NEXT1 CC2: INC DH NEXT1: LOOP AA1 STOP: MOV AH,2 MOV DL,BH ADD DL,X INT 21H MOV AH,2 MOV DL,BL

4 / 6

ADD DL,X INT 21H MOV AH,2 MOV DL,DH ADD DL,X INT 21H MOV AX,4C00H INT 21H4 CODE ENDS END START

五、实验结果与分析:

5 / 6

六、讨论、心得:

由实验运行可知,上述两个程序正确。

其中也由于一些编码时的粗心大意而导致一些错误。如在程序端未加 MOV AX,4C00H INT 21H 而将出现一些无缘无故的错误。并且一般而言使用中断时,必须有栈段。 还有一些小的错误等。

体会:通过使用-u来进行反编译也是一种很好的进行测试的方法。并且对于一些并不熟悉的ASCALL码有时可以通过直接用字符的方法去做,省去记忆字符。

6 / 6

因篇幅问题不能全部显示,请点此查看更多更全内容