微机原理与接口技术实验报告
微机原理与接口技术》
上机报告
学院:机电学院指导教师:胡勇学号:631424210229 姓名:鞠其林
实验一初级程序的编写与调试实验
、实验目的
1、熟练掌握DEBUG的常用命令,学会用DEBUG调试程序.
2、深入了解数据在存储器中的存取方法, 及堆栈中数据的压入与弹出
3、掌握各种寻址方法以及简单指令的执行过程.
二、实验内容
1、设堆栈指针SP=2000H,AX=3000H,BX=5000H请, 编一程序段将AX的内容和BX 的内容进行交换. 请用堆栈作为两寄存器交换内容的中间存储单元, 用DEBUG调试程序进行汇编与调试.
程序:
MOV AX,3000
MOV BX,5000
MOV SP,2000
PUSH AX
PUSH BX
POP AX
POP BX
HLT
2、设AX=0002H,编一个程序段将AX的内容乘10, 要求用移位的方法完成程序:
MOV AX,0002 MOV BX,AX MOV CL,2 SHL AX,CL ADD AX,BX MOV
CL,1 SHL AX,CL HLT
三、心得体会
从这个程序的编辑过程中我感受到了汇编语言的强大,很直观的就可以读懂程
序的含义,但代码比较难记,而且语法严谨,我调试的过程中犯了一点错误,
修改的次数较多,希望我以后可以不再犯同样的错误,也是因为我练的比较的 少,还很生疏,我以后一定多加练习,把汇编学好 实验二 加法及判断程序的编写与调试
、实验目的 1、熟练掌握编写汇编语言源程序的基本方法和基本框架
2、学会编写顺序结构 , 分支结构和循环结构的汇编程序
3、掌握程序中数据的产生与输入输出的方法. 二、实验内容
1、用汇编语言编写一个加法程序:
1325+9839
请用ASCII 码的形式将加数与被加数存放在数据区DATA1和DATA2中, 并将相加结果显示输出.
程序:
DATA SEGMENT
DATA1 DB '5','2','3','1'
DATA2 DB '9','3','8','9'
DATA ENDS
STACK SEGMENT PARA STACK 'STACK'
DB 200 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA,SS:STACK
START: MOV AX,DATA
MOV DS,AX
MOV AX,STACK
MOV SS,AX
LEA SI,DATA1
LEA DI,DATA2
MOV CX,4
MOV AH,0
NEXT:
MOV AL,[SI]
ADC AL,[DI]
ADC AL,AH
MOV AH,0
AAA
ADD AL,30H
MOV [DI],AL
INC DI
INC SI
LOOP NEXT
MOV CX,5
ADD AH,30H
MOV [DI],AH
NEXT1:MOV DL,[DI]
MOV AH,02
INT 21H
DEC DI
LOOP NEXT1
MOV AH,4CH INT 21H CODE ENDS
END START
2、假设有一组数据:5,-4,0,3,100,-51, 请编写一程序, 判断:每个数是否大于
0?等于0?还是小于0?并输出其判断结果, 即
即:
1 当X>0
Y=
0 当X=0
-1 当X<0
程序:
DATA SEGMENT
DATA1 DB 5, -4, 0 ,3,100,-51
STRING1 DB'Y=1','$'
STRING2 DB'Y=0','$'
STRING3 DB'Y=-1','$'
DATA ENDS
STACK SEGMENT PARA STACK 'STACK'