《余启航 微机原理与接口技术实验报告 - 副本.》由会员分享,可在线阅读,更多相关《余启航 微机原理与接口技术实验报告 - 副本.(25页珍藏版)》请在金锄头文库上搜索。
1、中 南 大 学微机原理与接口技术实验报告 学 院: 信息科学与工程学院 班 级: 姓 名: 学 号 指导老师 实验一 DEBUG 调试一、实验内容(1) 进入和退出DEBUG程序(2) 学会掌握DEBUG中的D命令,E,R,T,A,G命令等的使用,对于U命令,N命令,W命令等也应试一下。 二、实验环境 Windows系统下从进入命令行窗口。三、实验步骤 (1)在windows系统下按WIN+R键,在弹出窗口下输入cmd,进入命令行窗口,然后再窗口下输入debug,进入debug程序。(2)输入-a命令:如图:(3) 运行程序命令 连续输入3次 -t 输入-t = 100 后显示:输入-t=10
2、0,3 后显示: 分析 t 与 t=100 的区别:第二种执行命令G G=100, 108结论(1)此命令的100, 108的含义是什么? (2)说明T与G命令的异同.(4)存盘操作 N C:CC R BX 显示: BX 0034 :0000 R CX CX 0000 :0008 W 指定存贮区 (5)装入文件命令 DEBUG N c:cc L(指定装入的存贮区)如未指定,则装入cs:100开始的存贮区(6)反汇编 U(指定存贮区)(7)显示存贮单元命令D(8)其它命令: 1、修改存贮单元的命令E A:用给定的内容来替代指定范围的存贮单元的内容 D DS:100 E DS:100 F3 X Y
3、 Z8D D DS:100B:用逐个单元相继修改 E DS:100可能显示18E4:0100 89 78再按“空格”键可接着显示下一个单元的内容,可继续修改直到用结束 2、填写命令F F 4234:0100 L 5 F3 X Y Z8 D 实验一、简单的程序建立过程以及简化段定义 一、实验目的 1. 熟悉汇编过程 2. 熟悉并掌握简化段定义方式方法 二、实验过程 1. 实例汇编程序 2. 针对例题进行汇编语言设计 三、实验代码 1 完整代码部分 ;name it ex_movs ;- data segment source_buffer db 40 dup(a) data ends ;- ex
4、tra segment dest_buffer db 40 dup(?) extra ends ;- code segment ;- main proc far assume cs:code,ds:data,es:extra start: push ds sub ax,ax push ax mov ax,data mov ds,ax lea si,source_buffer lea di,dest_buffer cld mov cx,40 rep movsb ret main endp ;- code ends ;- 实验二 汇编语言程序设计 end start 2.简化段定义代码 .mode
5、l small .data source_buffer db 40 dup(a) .fardata dest_buffer db 40 dup(?) .code start: lea si,source_buffer lea di,dest_buffer cld mov cx,40 rep movsb end start 实验二、循环与分支结构程序设计 一、实验目的 1、熟悉并掌握循环分支结构程序设计的要点。 2、熟悉汇编语言的实际操作。 二、实验过程 针对部分课后习题,进行实际编程操作 三、程序实现 5.16取十个数并取平均值放在AX中,然后将小于平均值的数放至BX中 代码如下: ;WRIT
6、TEN BY HEIO AT PM.14.30.2011.12.15 DATA SEGMENT A DW 13H,15H,10H,10H,12H,17H,18H,19H,21H,22H pkey db AVERAGE IS .$ ;pkey1 db BX IS .$ DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX ;mov es, ax LEA DX,pkey MOV AH,9 INT 21H ; output string at ds:dx PUSH BX PUSH SI LEA SI,A
7、MOV CX,10D MOV AX,0 PROADD: ADD AL,SI INC SI INC SI LOOP PROADD POP BX MOV DX,0 MOV BX,10D DIV BX MOV DX,0BH MOV BX,0 POP SI COMPARE: DEC DX CMP AX,SI ;MOV DX,SI测试代码 JNBE BIGGER INC SI INC SI JMP SHORT COM BIGGER: INC BX INC SI INC SI COM: CMP DX,0 JNE COMPARE ADD AL,30H MOV DL,AL MOV AH,2 INT 21H M
8、OV AH,4CH INT 21H CODE ENDS END START 5.19 A数组包含15个互不相等的整数,B数组20个,比较A,B将相等的放于C数组中 输入A为:I am Heio Ray 输入B为:fI am Heio Raydc 最终C输出为:I am Heio Ray(如下图) 代码如下: ;WRITTEN BY HEIO AT PM.21:30.2011.12.19 data segment data1 dw 49H,20H,61H,6dH,20H,48H,65H,69H,6fH,20H,52H,61H,79H data2 dw 65H,49H,20H,61H,6dH,20
9、H,48H,65H,69H,6fH,20H,52H,61H,63H,62H data3 dw 15 dup(?) data ends code segment assume ds:data,cs:code start: mov ax,data mov ds,ax mov es, ax lea si,data1 lea di,data2 lea bx,data3 mov dx,14H mov ax,0dh push ax cmpa: mov ax,si cmp ax,di je next1 add di,2 dec dx cmp dx,0 je next2 jmp cmpa next1: mov
10、 bx,si+2 mov dl,byte ptr si mov ah,2 int 21h next2: pop ax dec ax cmp ax,0 push ax je result add si,2 mov dx,14H lea di,data2 jmp cmpa result: mov ah,4cH int 21H code ends end start 5.21 对数组ARRAY中三个数,相互比较,三个互不相等显示0,两个相等显示1,三个相等显示2 数组三个数为:50H,51H,50H 其中:两个相等输出为1(如下图) 代码如下: ;WRITTEN BY HEIO AT PM.13:37.2011.12.15 DATA SEGMENT A DW 50H,51H,50H DATA ENDS CODE SEGMENT START: MOV AX,DATA MOV DS,AX