汇编语言实验报告
- 格式:doc
- 大小:583.00 KB
- 文档页数:9
实验二:汇编语言
一、实验代码及结果:
3.2 若1KB的数据存放在TABLE以下,试编程序将该数据块搬到NEXT为首地址的内存区域中。
代码:
DATA SEGMENT:
TABLE DB 10 DUP (32H)
NEXT DB 10 DUP (89H)
COUNT DB 10H
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX, DATA
MOV DS,AX
MOV SI,OFFSET TABLE
MOV DI,OFFSET NEXT
AGAIN:
MOV AX,[SI]
MOV [DI],AX
INC SI
INC DI
DEC COUNT
LOOP AGAIN
MOV AH,4CH
INT 21H
CODE ENDS
END START
结果:
3.3试编写10个字(16位2进制数)之和的程序。
代码:
DATA SEGMENT
ADD1 DB 1H
ADD2 DB 2H,3H,4H,5H,6H,7H,8H,9H,0AH
SUM DB (?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX, DATA
MOV DS,AX
MOV SI,OFFSET ADD1
MOV DI,OFFSET ADD2
MOV BX,OFFSET SUM
MOV CX,9H
MOV AL,[SI]
MOV AH,0H
PLUS1:ADC AL,[DI]
INC DI
LOOP PLUS1
MOV BX,AX
MOV AH,4CH
INT 21H
CODE ENDS END START
结果:
3.7试编写程序将MOLT中的一个8位2进制数乘以20,乘积放在ANS单元及其下一单元中。
代码:
DATA SEGMENT
MOLT DB 0AAH
MOLT1 DB 0AAH
ANS DB (?)
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
START:
MOV AX, DATA
MOV DS,AX
MOV SI,OFFSET MOLT
MOV DI,OFFSET MOLT1
MOV BX,OFFSET ANS
MOV CX,14H
MOV AX,SI
PLUS1:ADC AX,[DI]
LOOP PLUS1
MOV BX,AX
MOV AH,4CH
INT 21H
CODE ENDS END START
结果:
二、实验感想:
虽说对汇编语言的学习时间比较少、掌握和理解程度比较浅,但是通过一周多的学习和对汇编语言的上机操作能够很好的明白汇编语言程序的编写、运行和调试的方法,以及对汇编语言的实验代码和基本程序的组成有了大致的了解,为以后学习相关的知识打下了一个很好的基础。下面具体谈一下我对汇编语言以及其实验的认识和感受:
汇编语言是一种用于电子计算机、微处理器、单片机、或其他可编程器件的低级语言,在汇编语言中助记符代替机器指令和操作码,用地址符号或标号代替指令或操作数的地址从而增强程序的可读性,而我们因此也形象的叫它符号语言。
通过上机实验我大体上理解了汇编程序基本由数据段、代码
段和地址段等构成。其执行过程如下:①编辑,用编辑软件形成源程序;②汇编,用汇编语言对源程序进行汇编;③连接,用连接程序对目标程序进行连接,形成可执行文件;④执行,如果结果在屏幕上显示则直接执行可执行文件;⑤调试,用调试程序对可执行文件进行调试。
结合理论和实际,我感觉汇编语言的执行效率比C语言要高得多,比如把一个变量值加1,执行100次,C语言需要寻址内存找到变量,而后把变量值拷贝到寄存器,而后对寄存器加1再把寄存器值写回内存,如此反复100次;而汇编代码只需寻址内存一次,把变量读入寄存器,然后对寄存器自加100次,最后写回内存即可。
通过以上我认为汇编语言虽说比较繁琐复杂,但也是一个值得学习和开发使用的语言!