【www.scfx8.com--教师述职报告】

学生姓名:

XXX 学号:

XXX 指导教师:

XXX 实验一 简单程序设计 一、 实验目的:

1.学习 8086 汇编语言的编程方法。

2.掌握汇编语言程序设计的一般过程和调试方法。

二、实验设备:

PC 机 实验内容:

1. 编制一个简单的运算程序,并且调试完成。

2. 编制一个计算 x=a2 +b 2 3. 验证上述结果的正确 四、实验报告 1.程序代码(相应注释) assume cs:code ,ds:data segment data ends code segment start: mov al,02h ;第一个数是 02H mov bl,al mul al ;al 和 bl 相乘,结果存入到 al mov cl,al ; cl 暂存结果 al,06h ;第二个数是 06H mov bl,al mul al ;al 和 bl 相乘,结果存入到 al mov dl,al ; dl 暂存结果 add cl,dl ;最终结果存入至 cl code ends end start 2、实验过程

1.编译源代码:

2.链接 obj 文件 3.调试程序(调试运行可执行文件)

3.实验 要求:

XXX XXX XXX

微机原理与汇编语言- - 实验报告 实验 2-1 学生姓名:

XXX 学号:

XXX 指导教师:

XXX 实验二 循环、分支程序设计 一、 实验目的:

1.学会用汇编语言编写稍微复杂一点的程序。

2.进一步掌握汇编语言程序设计的一般过程和调试方法。

3.学会设计循环、分支程序。

二、实验设备:

PC 机 三、 实验 内容:

1. 编制一个统计数组中正负数个数及均值的程序,并且调试完成得到正确的结果。

2. 设计计算 Y=1+2+3+....,直到累加和刚好大于 10000 的程序并且调试完成。

3. 对给定数组中的所有元素,按从大到小的顺序排序,并且加以验证。

四、实验报告 1.程序代码(相应注释) 题目一:

DATA SEGMENT ; 要测试的数据 SHUJU DB 3,-21,-4,-11,-1,1,2,3,4,5,6,7,8,7,99 DB 2,30,0,0,0,4,0,-10,44,-3,-22,-34,-92,-3 GESHU DW $-SHUJU ZHENG DB 0 FU DB 0 LING DB 0 1 ZHENG: ","$" ;预定义显示字符串 2 FU: ","$" SHOW3 DB "THE NUMBER OF LING: ","$" HUANHANG DB 0DH,0AH,"$" BUF DB "6455412345$" L=$-BUF DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA ; 标明代码段,数据段 KONG PROC AX PUSH DX MOV AH,9

微机原理与汇编语言- - 实验报告 实验 2-2 LEA DX,HUANHANG ; 换行 INT 21H DX POP AX RET KONG ENDP START: ; 程序入口 AX,DATA MOV DS,AX LEA SI,SHUJU MOV CX,GESHU NET1: MOV AL,[SI] TEST AL,0FFH JZ ZERO CMP AL,0 ; 和零比较 JL PLUS INC ZHENG JMP NET2 PLUS: INC FU JMP NET2 ZERO: INC LING NET2: INC SI LOOP NET1 LEA DX,SHOW1 ;显示正数的个数的展示模板 MOV AH,9 INT 21H MOV BL,ZHENG DISP ; 调用 CALL KONG LEA DX,SHOW2 ; 显示负数的个数的展示模板 MOV AH,9 INT 21H MOV BL,FU DISP CALL KONG LEA DX,SHOW3 ; 显示零的个数的展示模板 MOV AH,9 INT 21H

微机原理与汇编语言- - 实验报告 实验 2-3 MOV BL,LING DISP CALL KONG MOV AX,4C00H INT 21H DISP PROC SI A BX DX PUSH CX CX,0 MOV BH,0 CMP BX,0 ; 和零比较 JNL NEXT1 ; 跳转 NEG BX MOV CX,1 NEXT1: LEA SI,BUF+L-1 A,BX MOV BX,10 NEXT: MOV DX,0 DIV BX ADD DL,30H DEC SI MOV [SI],DL CMP AX,0 ; 和零比较 JNE NEXT CMP CX,0 ; 和零比较 JE NEXT2 DEC SI MOV BYTE PTR[SI],"-" NEXT2: DX,SI MOV AH,9 INT 21H CX DX B AX POP SI

微机原理与汇编语言- - 实验报告 实验 2-4 RET DISP ENDP CODE ENDS END START 题目二:

DATA SEGMENT SUM DW ? ;记录总数 sum CN DW ? ;记录加数的值 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: AX,DATA DS,AX A MOV BX,0 ; 初始化 LP: INC BX ADD BX CMP AX,10000 ;比较是否大于 10000,否则就继续执行 JBE LP SUM,AX CN,BX MOV AH,4CH INT 21H CODE ENDS END START 题目三:

DATA SEGMENT NUM DB 5,9,8,7,3,15 LEN EQU $-NUM DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: AX,DATA DS,AX MOV CX,LEN

微机原理与汇编语言- - 实验报告 实验 2-5 DEC CX ;CX←比较趟数,即外循环次数 LOP1: MOV DX,CX ; 保存外循环次数在 DX,内循环比较次数在 CX 中。

MOV SI,0 LOP2: MOV AL,NUM[SI] CMP AL,NUM[SI+1] ;相邻两数据比较 JAE CONT XCHG AL,NUM[SI+1] MOV NUM[SI],AL CONT : INC SI ;修改数据地址指针 LOOP LOP2 ; 内循环结束 MOV CX,DX ;恢复外循环计数值 LOOP LOP1 ;外循环是否结束 MOV AH,4CH INT 21H CODE ENDS END START 2、实验过程和结果 第一题:

第二题:

微机原理与汇编语言- - 实验报告 实验 2-6 第三题:

微机原理与汇编语言- - 实验报告 实验 2-7 3.实验总结 要求:

XXX XXX

微机原理与汇编语言- - 实验报告 实验 3-1 学生姓名:

XXX 学号:

XXX 指导教师:

XXX 实验三 系统功能调用实验 一、 实验目的:

1.进一步掌握汇编语言程序设计的一般过程和调试方法。

2.理解系统功能调用的过程和使用方法。

3.熟练掌握键盘输入和屏幕输出的系统功能调用方法 二、实验设备:

PC 机 三、实验内容:

1.编制一个具有屏幕提示和键盘输入的程序,键盘输入一个人名,在屏幕上显示“Hello 人名!”; 2.通过键盘输入一串包含大小写字母和数字的字符串,统计其中大写、小写字母和数字字符的个数,并将结果显示在屏幕上。

四、实验报告 1.硬件原理和程序代码(相应注释) 题目一:

DATA SEGMENT BUF DB 30 ACTL DB ? STR DB 30 DUP(?) MESS DB "WHAT IS YOUR NAME?",0DH,0AH,"$" ;输入提示模板 DMESS DB 0DH,0AH,"Hello,$" ; 换行 DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA ; 标明程序段和代码段 MAIN PROC FAR ; 程序入口 PUSH DS MOV AX,0 PUSH AX AX,DATA MOV DS,AX LEA DX,MESS MOV AH,9 ; 9 号功能调用 INT 21H

微机原理与汇编语言- - 实验报告 实验 3-2 LEA DX,BUF MOV AH,10 INT 21H MOV AL,ACTL CBW MOV SI,AX LEA BX,STR ],BYTE PTR"!" MOV [BX+SI+1],BYTE PTR"$" LEA DX,DMESS MOV AH,9 INT 21H LEA DX,STR MOV AH,9 INT 21H RET MAIN P CODE ENDS END MAIN 题目二:

DATAS SEGMENT buf db "12ADdf#gh592HKL*","$" ;测试数据 1 大写字符个数 2 小写字符个数 3 数字个数 tp4 db 0 ; 其他字符个数 1 big is:","$" 2 small is:","$" 3 number is:","$" 4 "the number of other is:","$" str5 db 0dH,0aH,"$" DATAS ENDS CODES SEGMENT ASSUME CS:CODES,DS:DATAS START: AX,DATAS MOV DS,AX lea si, buf mov cx, 16 ;设置循环次数

微机原理与汇编语言- - 实验报告 实验 3-3 again: ; 字符串结尾,结束程序 cmp byte ptr[si],"&" je exitnear ; 一步跳不过去,分两步跳,先跳到近处 cmp byte ptr[si],30h ;小于 30,其他字符加一 jb L1 cmp byte ptr[si],39h ;大于 39 进一步比较 jbe L2 cmp byte ptr[si],41h jb L1 cmp byte ptr[si],5AH jbe L3 cmp byte ptr[si],61h jb L1 cmp byte ptr[si],7AH jbe L4 exitnear: jmp exit L1: inc tp4 jmp L5 L2: inc tp3 jmp L5 L3: inc tp1 jmp L5 L4: inc tp2 jmp L5 L5: add si,1 loop again lea dx,str1 mov ah,09h int 21h mov bl,tp1

微机原理与汇编语言- - 实验报告 实验 3-4 call disp mov ah,09h lea dx,str5 int 21h ;显示小写字母 lea dx,str2 mov ah,09h int 21h mov bl,tp2 call disp ;调用子程序 mov ah,09h lea dx,str5 int 21h ; 显示数字 lea dx,str3 mov ah,09h int 21h mov bl,tp3 call disp ; 调用子程序 mov ah,09h lea dx,str5 int 21h ; 显示其他 lea dx,str4 mov ah,09h int 21h mov bl,tp4 call disp ; 调用子程序 mov ah,09h lea dx,str5 int 21h exit: MOV AH,4CH

微机原理与汇编语言- - 实验报告 实验 3-5 INT 21H disp PROC ;显示 bx 中的数 mov ch,4 roll: mov cl,4 rol bx,cl mov dl,bl and dl,0fh cmp dl,9 jbe next1 add dl,07h next1: add dl,30h mov ah,02h int 21h dec ch jnz roll RET disp ENDP CODES ENDS end start 2、实验过程和结果 第一题:

微机原理与汇编语言- - 实验报告 实验 3-6 第二题:

3.实验总结

微机原理与汇编语言- - 实验报告 实验 3-7 要求:

XXX XXX

微机原理与汇编语言- - 实验报告 实验 4-1 学生姓名:

XXX 学号:

XXX 指导教师:

XXX 实验四 8255 并行接口实验 一、 实验目的:

1.理解 8255 不同工作方式的不同。

2.验证 8255 不同工作方式下的输入/输出,进而总结出 8255 通用并行接口芯片的各种工作方式的不同和使用环境。

3.掌握一般接口器件的使用方法。

二、实验设备:

PC 机、唐都 8086/8088 实验箱 三、实验内容:

1.将 8255 一个端口接 8 个发光二极管,用不同工作方式控制其逐次点亮发光二极管。

2.将 8255 另一个端口接开关,用不同工作方式,编程将开关信息在发光二极管上显示出来。

3.验证上述操作的正确性,对实验结果进行解释 四、实验报告 1.硬件原理和程序代码(相应注释) 一:

式 方式 0 :

CTL8255 EQU 206H PA0PB8255 EQU 204H CODE SEGMENT ASSUME CS:CODE ORG 100H MAIN PROC SP,2000H DX,CTL8255 MOV AL,80H ; 1000 0000 方式 0 OUT DX,AL MOV AL,1 NEXT: MOV DX,PA8255 OUT DX,AL CALL DELAY ;调用延时程序 ROL AL,1

微机原理与汇编语言- - 实验报告 实验 4-2 JMP NEXT MAIN ENDP DELAY PROC MOV CX,6000H ;延时时间 LOP: LOOP LOP RET DELAY ENDP CODE ENDS END MAIN 式 注:方式 1 和方式 2 只需把 mov 80h 换成 mov 0a0h 和 mov 0c0h 即可,实验的效果相同 二:

式 方式 0 CTL8255 EQU 206H PA0PB8255 EQU 204H CODE SEGMENT ASSUME CS:CODE ORG 100H Main proc MOV SP,2000H MOV DX,CTL8255 MOV AL,082H ; 1000 0010 方式 0 OUT DX,AL NEXT: MOV DX,PB8255 IN AL,DX NOT AL MOV DX,PA8255 OUT DX,AL JMP NEXT MAIN endp CODE ENDS END Main

微机原理与汇编语言- - 实验报告 实验 4-3 方式 1:

CTL8255 EQU 206H PA0PB8255 EQU 204H CODE SEGMENT ASSUME CS:CODE ORG 100H Main proc MOV SP,2000H MOV DX,CTL8255 MOV AL,086H ; 1000 0110 方式 1 OUT DX,AL NEXT: MOV DX,PB8255 IN AL,DX NOT AL MOV DX,PA8255 OUT DX,AL JMP NEXT MAIN endp CODE ENDS END Main 2、实验过程和结果

微机原理与汇编语言- - 实验报告 实验 4-4 一:

二:

方式 0 方式 1

微机原理与汇编语言- - 实验报告 实验 4-5 3.实验总结 要求:

XXX XXX

微机原理与汇编语言- - 实验报告 实验 5-1 学生姓名:

XXX 学号:

XXX 指导教师:

XXX 实验五 键盘、LED 实验 一、 实验目的:

1.进一步理解 8255 不同工作方式的不同。

2.掌握键盘的工作原理的按键的识别方法,掌握 LED 显示的控制方法。

3.仔细观察实验结果,深入理解键盘消抖的方法。

二、实验设备:

PC 机、唐都 8086/8088 实验箱 三、实验内容:

1. 在实验箱上,连接小键盘和 LED 显示器。

2. 编程将键盘输入的数字,显示在显示器上,在按键时,原来显示的数字左移一位,新按的键值显示在最右端。

3. 考虑两个键组合时的输入方法 4. 对实验结果进行说明 四、实验报告 1.硬件原理和程序代码(相应注释) PA0PB8255 equ 202H PC8255 equ 204H CTL8255 equ 206H code segment assume cs:code,ds:code,ss:code org 100h Main proc sp,2000h al,89H ;1000 1001 mov dx,ctl8255 out dx,al step1: call disp call key jc step1 mov cx,3 lea si,buf-100h step2: mov l,[si+1] mov [si],bl

微机原理与汇编语言- - 实验报告 实验 5-2 inc si loop step2 mov byte ptr [buf+3-100h],al jmp step1 main endp key proc bx cx dx si push di al,0 mov dx,pb8255 ;关显示 out dx,al al,0 mov dx,pa8255 out dx,al mov dx,pc8255 in al,dx and al,0fh cmp al,0fh je nokey mov cx,4 ;原来写成 MOV AH,4 mov ah,0feh ; 1111 1110 scrapy: ;一直判断有没有键按下,有键按下就识别它,没键按下就下一个 al,ah mov dx,pa8255 out dx,al mov dx,pc8255 in al,dx and al,0fh cmp al,0fh je nextl ;有键按下,识别它

微机原理与汇编语言- - 实验报告 实验 5-3 mov cl,4 shl al,cl and ah,0fh or al,ah lea si,tab1-100h cx,10 ;循环扫描 10 个键,没有就跳转到 nokey mov bx,0 circle: cmp al,[si][bx] je find inc bx loop circle jmp nokey find: wait1: call disp al,0 mov dx,pb8255 ;关显示 out dx,al al,0 mov dx,pa8255 out dx,al mov dx,pc8255 in al,dx and al,0fh cmp al,0fh jne wait1 mov al,bl clc jmp exit nextl: rol ah,1 ;把 ah 的值左移了一位 loop scrapy nokey: stc ;没键按下 exit: push ax dx,pa8255 mov al,0ffh out dx,al ax di si dx cx pop bx

微机原理与汇编语言- - 实验报告 实验 5-4 ret key endp disp proc ax bx cx dx si push di lea bx,tab-100h next: mov cx,4 lea si,buf-100h mov ah,0feh ;1111 1110 lop: mov al,[si] xlat ;[BX+AL]-->AL mov dx,pb8255 out dx,al al,ah mov dx,pa8255 out dx,al rol ah,1 call delay inc si al,0ffh ;关闭显示 mov dx,pa8255 out dx,al loop lop di si dx cx bx pop ax ret disp endp delay proc push cx mov cx,100 del1: loop del1

微机原理与汇编语言- - 实验报告 实验 5-5 pop cx ret delay endp tab1: db 0d7h,0ebh,0dbh,0bbh,0edh,0ddh,0bdh,0eeh,0deh,0beh ; 0 1 2 3 4 5 6 7 8 9 A B C D E F tab: db 3fh,6,5bh,4fh,66h,6dh,7dh,7,7fh,6fh,77h,7ch,58h,5eh,79h,71h buf: db 1,2,4,7 code ends END MAIN 2、实验过程和结果 按顺序输入:

微机原理与汇编语言- - 实验报告 实验 5-6 3.实验总结 要求:

XXX XXX

微机原理与汇编语言- - 实验报告 实验 6-1 学生姓名:

XXX 学号:

XXX 指导教师:

XXX 实验六 中断实验 一、 实验目的:

1.深入理解中断概念、中断过程以及中断响应过程。

2.掌握中断向量设置方法、中断的处理过程以及中断服务程序的编制。

3.并思考多中断源情况下的中断控制以及优先级、中断嵌套等。

二、实验设备:

PC 机、唐都 8086/8088 实验箱 三、实验内容:

1. 连接实验箱上的数码管,通过消抖开关作为中断源。

2. 编写程序,完成在中断服务程序中记录中断次数,在主程序中显示按键次数。

3. 将消抖开关换成一般开关,用同样的程序,再测试,仔细观察,发现了什么,为什么? 四、实验报告 1.硬件原理和程序代码(相应注释) CTL8255 equ 206H PA0PB8255 equ 202H PC8255 equ 204H code segment assume cs:code,ds:code org 100h Main proc mov sp,2000h mov dx,ctl8255 ;8255 PA PB PC 全部方式 0 输出 mov al,80h out dx,al ;0000H: 0000---03ffH 中断向量表的位置 ax,0 ;设置中断向量,2 号中断 mov es,ax ; cli 非屏蔽中断不用 lea ax,server-100h ;程序是从 100H 开始 ],ax ;在装入时,装入到 0 位置,以下原因相同 mov es:[2*4+2],cs ; sti

微机原理与汇编语言- - 实验报告 实验 6-2 mov bp,0000 lop: call disp jmp lop main endp disp proc ax bx cx dx si push di lea bx,tab-100h ;将 BP 中的 16 位数,显示出来 BP 下载微机原理实验系列word格式文档 下载微机原理实验系列.doc 将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。 点此处下载文档

文档为doc格式

本文来源:http://www.scfx8.com/shuzhibaogao/72138.html