当前位置:文档之家› 8086软硬件实验报告(微机原理与接口技术上机实验)

8086软硬件实验报告(微机原理与接口技术上机实验)

实验一实验环境熟悉与简单程序设计实验目的(1)掌握DEBUG调试程序的使用方法。

(2)掌握简单程序的设计方法。

实验内容编程将BH中的数分成高半字节和低半字节两部分,把其中的高半字节放到DH中的低4位(高4位补零),把其中的低半字节放到DL中的低4位(高4位补零)。

如:BH=10110010B则运行程序后DH=00001011BDL=00000010B实验准备(1)熟练掌握所学过的指令。

(2)根据实验内容,要求预先编好程序。

实验步骤(1)利用DEBUG程序输入、调试程序。

(2)按下表要求不断地修改BH的内容,然后记录下DX的内容。

实验报告(1)给出程序清单。

(2)详细说明程序调试过程。

程序:CODE SEGMENTSTART : MOV BH,00111111B MOV AL,BHMOV CL,4SHR AL,CLMOV DH,ALMOV AL,BHAND AL,00001111BMOV DL,ALMOV CL,0CODE ENDSEND START实验二简单程序设计实验目的(3)掌握DEBUG调试程序的使用方法。

(4)掌握简单程序的设计方法。

实验内容试编写一个汇编语言程序,要求实现功能:在屏幕上显示:Hello worldMy name is Li Jianguo参考程序如下:(有错)data segmentout1 db 'Hello world'ax db 'My name is Li Jianguo'data enscode segmentassume cs:code;ds:datalea dx,out1mov ah,2int 21hmov dl,0ahmov ah,2int 21hmov dl,0dhmoo ah,2int 21hlea dx,axmov ah,int 21hcode ends实验步骤(3)利用IDE86程序输入、调试程序。

实验报告(3)给出正确的程序清单。

(4)详细说明程序调试过程。

程序:DATAS SEGMENTSTRING1 DB 13,10,'Hello World!',13,10,'$';13为回车,10为换行,$为结束符STRING2 DB 13,10,'My name is LI Jianguo',13,10,'$' DATAS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATASSTART:MOV AX,DATASMOV DS,AXLEA DX,STRING1MOV AH,9INT 21HLEA DX,STRING2MOV AH,9 INT 21H MOV AH,4CH INT 21H CODES ENDSEND START实验三循环程序设计实验目的(1)掌握在PC机上建立、连接、调试和运行8086汇编语言程序的过程。

(2)掌握数据传送和算术运算指令的使用方法。

(3)了解部分DOS系统调用的使用方法。

实验内容将两个5位十进制数相加。

要求被加数和加数均以ASCII码形式各自顺序存放在以DATA1和DATA2为首地址的5个内存单元中(低位在前),结果送回DATA1处。

另外,程序利用DOS的9号调用功能完成将被加数、加数和最后的和在显示器上的显示。

参考程序如下:data segmentdata1 db 32h, 38h, 30h, 36h, 37h,'$'data2 db 33h, 35h, 33h, 38h, 32h, '$'data endsstac segmentsta db 100 dup (?)stac endscode segmentassume cs:code, ds:data, ss:stac, es:datastart proc farpush dsxor ax, axpush axmov ax, datamov ds, axmov es, axmov ah, 9mov dx, offset data1int 21hmov ah, 2mov dl, '+'int 21hmov ah, 9mov dx, offset data2int 21hmov si, offset data1mov di, offset data2mov bx, 5push bxpush siconv1: and byte ptr[si+bx-1], 0fhand byte ptr[di+bx-1], 0fhdec bxjnz conv1mov cx, 5xor ax, axadd1: mov al, [si+4]mov bl, [di+4]adc al, blaaamov [si+4], aldec sidec diloop add1pop sipop bxconv2: or byte ptr[si+bx-1], 30h dec bxjnz conv2mov ah, 2mov dl, '='int 21hmov ah, 9mov dx, siint 21hretstart endpcode endsend start实验准备(1)仔细阅读本书第一章,掌握源程序的编辑、汇编、连接和调试方法。

(2)阅读教材,熟练掌握数据传送和算术运算指令的使用方法。

(3)阅读有关DOS系统调用的参考书,掌握1号调用、2号调用、7号调用、8号调用和9号调调用的使用方法。

(4)仔细阅读参考程序。

实验步骤(1)首先用IDE86软件输入汇编语言源程序,然后对此源程序进行汇编,再用LINK程序进行连接,最后执行。

如果程序运行结果不正确:①重复以上过程,并记录下修改经过,直至程序正确运行为止。

②在步骤(1)中,如果程序运行结果不正确,可使用DEBUG程序进行动态调试,直到程序正确运行为止。

(2)利用DEBUG程序修改被加数和加数,运行程序,并记录下程序运行结果。

将被加数修改为:31H,32H,33H,34H,35H将加数修改为:35H,34H,33H,38H,39H程序运行后,请照实写出屏幕显示结果。

(3)修改你编写的或前面给出的参考程序。

利用DOS系统功能完成5位被加数和加数的键盘输入,程序完成加法后,输出相加的和,记录下程序运行过程及结果。

实验四子程序及分支结构程序设计实验目的(1)掌握分支程序及子程序设计的方法。

(2)进一步熟悉汇编语言源程序的上机过程。

实验内容设有10个学生的成绩分别为:76、69、84、90、73、88、99、63、100、80,试编制一个程序统计60到69、70到79、80到89、90到99和100分的人数,分别放到五个存储单元中,然后在屏幕上显示。

统计部分和显示部分要求用子程序实现。

要求用堆栈进行参量传递。

实验准备(1)认真阅读教材,掌握分支程序的编程方法。

(2)绘制程序流程图,编写程序。

实验步骤(1)完成汇编语言源程序的编辑和连接过程。

(2)利用DEBUG进行程序调试和运行。

(3)撰写实验报告。

DATAS SEGMENTSCORE db 76,69,84,90,73,88,99,63,100,80STR1 db 'THE NUMBER OF 100 IS: ','$'STR2 db 'THE NUMBER OF 90-100 IS: ','$'STR3 db 'THE NUMBER OF 80-90 IS: ','$'STR4 db 'THE NUMBER OF 70-80 IS: ','$'STR5 db 'THE NUMBER OF 60-70 IS: ','$'COUNT EQU 10GRADEA db ?GRADEB db ?GRADEC db ?GRADED db ?GRADEE db ?DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKS START:MOV AX,DATASMOV DS,AXLEA BX,SCOREMOV CX,COUNTA1:MOV AL,[BX]CALL COMPAREINC BXLOOP A1CALL OUTPUTMOV AH,4CHINT 21HCOMPARE PROCPUSH BXCMP AL,100 JE L1CMP AL,90JAE L2CMP AL,80JAE L3CMP AL,70JAE L4CMP AL,60JAE L5L1:INC GRADEA JMP DONEL2:INC GRADEB JMP DONEL3:INC GRADEC JMP DONEL4:INC GRADED JMP DONEL5:INC GRADEE JMP DONE DONE: POP BXRETCOMPARE ENDP OUTPUT PROCLEA DX,STR1 MOV AH,9INT 21HADD GRADEA,30H MOV DL,GRADEA MOV AH,2INT 21HMOV DL,0AHMOV AH,2INT 21HMOV DL,0DHMOV AH,2INT 21HLEA DX,STR2MOV AH,9INT 21HADD GRADEB,30H MOV DL,GRADEB MOV AH,2INT 21HMOV DL,0AHMOV AH,2INT 21HMOV DL,0DHMOV AH,2INT 21HLEA DX,STR3MOV AH,9INT 21HADD GRADEC,30H MOV DL,GRADEC MOV AH,2INT 21HMOV DL,0AHMOV AH,2INT 21HMOV DL,0DHMOV AH,2INT 21HLEA DX,STR4MOV AH,9INT 21HADD GRADED,30H MOV AH,2MOV DL,GRADED INT 21HMOV DL,0AHMOV AH,2INT 21HMOV DL,0DHMOV AH,2INT 21HLEA DX,STR5MOV AH,9INT 21HADD GRADEE,30H MOV DL,GRADEE MOV AH,2INT 21HMOV DL,0AHMOV AH,2INT 21HRETOUTPUT ENDPCODES ENDSEND START实验五简单I/O口扩展实验一、实验目的1、利用74LS273,74LS244扩展 I/0 。

2、掌握用锁存器、三态门扩展简单的并行输入、输出口的方法。

相关主题