计算机接口实验报告

 

计算机接口技术

实验报告

                                                                                                                                               

东北大学秦皇岛分校

实验一 可编程定时计数器8253

1、计数器

一、实验目的

    掌握8253的基本工作原理和编程方法。

二、实验内容

    按图16虚线连接电路,将计数器0设置为方式0,计数器初值为N(N≤0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。

三、编程提示

    8253控制寄存器地址      283H

计数器0地址             280H

计数器1地址             281H

CLK0连接时钟              1MHZ

四、实验原理图

图16

五、连线

计数器0的CLK0端接实验箱单脉冲的高电平

计数器0的GATE0端接+5V的电源

计数器0的OUT0端接逻辑笔

六、源程序代码

ASM程序:

ioport     equ 0d400h-0280h

io8253a        equ ioport+283h

io8253b        equ ioport+280h

code segment

    assume  cs:code

start: mov al,14h       ;设置8253通道0为工作方式2,二进制计数

       mov dx,io8253a

       out dx,al

       mov dx,io8253b      ;送计数初值为0FH

      mov al,0fh

      out dx,al

lll: in al,dx         ;读计数初值

     call disp        ;调显示子程序

     push dx 

     mov ah,06h

     mov dl,0ffh

     int 21h

     pop dx

     jz lll

     mov ah,4ch       ;退出

     int 21h

disp   proc near        ;显示子程序

     push dx

 and al,0fh       ;首先取低四位

     mov dl,al

     cmp dl,9         ;判断是否<=9

     jle  num         ;若是则为'0'-'9',ASCII码加30H

     add dl,7         ;否则为'A'-'F',ASCII码加37H

num:     add dl,30h

     mov ah,02h       ;显示

     int 21h

     mov dl,0dh       ;加回车符

     int 21h

     mov dl,0ah       ;加换行符

     int 21h

     pop dx

     ret              ;子程序返回

    disp endp

    code ends

end start

在此程序中,芯片8253的初始化程序片段是:

mov al,14h       ;设置8253通道0为工作方式2,二进制计数

       mov dx,io8253a

       out dx,al

       mov dx,io8253b      ;送计数初值为0FH

       mov al,0fh

      out dx,al

七、源程序运行结果

屏幕依次显示1~f,16个二进制数,且每按一次单脉冲二进制数减一。当从f减到1时,逻辑笔的信号灯的红灯亮;当从2减到1时,逻辑笔的信号灯由红灯变更为绿灯。

 2、计数器二

一、实验原理图:

按图17连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ)

图17

二、源程序代码

ASM程序:

ioport     equ 0d400h-0280h

io8253a        equ ioport+280h

io8253b        equ ioport+281h

io8253c        equ ioport+283h

code segment

    assume   cs:code

start:mov dx,io8253c     ;向8253写控制字

    mov al,36h       ;使0通道为工作方式3

    out dx,al

    mov ax,1000      ;写入循环计数初值1000

    mov dx,io8253a

    out dx,al        ;先写入低字节

    mov al,ah

    out dx,al        ;后写入高字节

    mov dx,io8253c

    mov al,76h       ;设8253通道1工作方式2

    out dx,al

    mov ax,1000      ;写入循环计数初值1000

    mov dx,io8253b

    out dx,al        ;先写低字节

        mov al,ah

    out dx,al        ;后写高字节

    mov ah,4ch       ;程序退出

    int 21h

  code ends

    end start

三、运行结果

逻辑笔处的红绿灯交替闪亮

实验二 模数转换器

1、电压转十六进制数

一、实验目的

了解模/数转换的基本原理,掌握ADC0809的使用方法。

二、实验内容

1、实验电路原理图如图18。通过实验台左下角电位器RW1输出0~5V直流电压送入ADC0809通道0(IN0),利用debug的输出命令启动A/D转换器,输入命令读取转换结果,验证输入电压与转换后数字的关系。

启动IN0开始转换:                                                   Out 0298 0

读取转换结果:                                                         In 0298

2、编程采集IN0输入的电压,在屏幕上显示出转换后的数据(用16进制数)。

三、实验提示

    1、ADC0809的IN0口地址为298H,IN1口地址为299H。

2、IN0单极性输入电压与转换后数字的关系为:N=Ui/(Uref/256)                    

其中Ui为输入电压,UREF为参考电压,这里的参考电压为PC机的+5V电源。

3、一次A/D转换的程序可以为

        MOV     DX,口地址

        OUT     DX,AL       ;启动转换

;延时

        IN      AL,DX       ;读取转换结果放在AL中

四、实验原理图

图18

五、实验连线

ACD0809的ION电压输入端接RW1

ACD0809的CS接298H

多用电压表的正表笔接RW1

多用电压表的负表笔接地

六、源程序代码

ASM程序:

Ioport   equ 0d400h-0280h

io0809a  equ ioport+298h

code  segment

assume cs:code

start:mov  dx,io0809a       ;启动A/D转换器

out  dx,al

mov  cx,0ffh       ;延时

delay:loop delay

in   al,dx         ;从A/D转换器输入数据

mov  bl,al         ;将AL保存到BL

mov  cl,4

shr  al,cl         ;将AL右移四位

call disp          ;调显示子程序显示其高四位

mov  al,bl

and  al,0fh

call disp          ;调显示子程序显示其低四位

mov  ah,02

mov  dl,20h        ;加回车符

int  21h

mov  dl,20h

int  21h

push dx

mov  ah,06h          ;判断是否有键按下

mov  dl,0ffh

int 21h

pop dx

je   start         ;若没有转START

mov  ah,4ch        ;退出

int  21h

disp  proc near          ;显示子程序

mov  dl,al

cmp  dl,9          ;比较DL是否>9

jle  ddd           ;若不大于则为'0'-'9',加30h为其ASCII码

add  dl,7          ;否则为'A'-'F',再加7

ddd:    add  dl,30h          ;显示

mov  ah,02

int  21h

ret

disp endp

code ends

end start

七、实验运行结果

电压与十六进制数的对应关系如下:

5V——————FF

4V——————C4

3V——————8D

2V——————57

1V——————1C

     0V——————00

2、波形显示

一、实验内容

将JP3的1、2短接,使IN2处于双极性工作方式,并给IN1输入一个低频交流信号(幅度为±5V),编程采集这个信号数据并在屏幕上显示波形。

二、实验原理图

三、实验源代码

ASM程序:

Ioport    equ 0a400h-0280h

io0809b   equ ioport+299h

code segment

assume    cs:code

start:  mov ax,0012h          ;设屏幕显示方式为VGA 640X480模示

int 10h

and cx,0              ;cx为横坐标

draw:   mov dx,io0809b        ;启动A/D转换器通道1

out dx,al

mov bx,500            ;延时

delay:  dec bx

jnz delay

in al,dx              ;读入数据

mov ah,0

mov dx,368            ;dx为纵坐标

sub dx,ax

mov al,0ah            ;设置颜色

mov ah,0ch            ;画点

int 10h

cmp cx,639            ;一行是否满

jz start              ;是则转start

inc cx                ;继续画点

push dx

mov ah,06h            ;是否有键按下

mov dl,0ffh

int 21h

pop dx

je draw               ;无,则继续画点

mov ax,0003           ;有恢复屏幕为字符方式

int 10h

mov ah,4ch            ;返回DOS

int 21h

code ends

end start

四、试验运行结果:

实验三  七段数码管

1、七段数码管动态显示

一、实验目的

    掌握数码管显示数字的原理

二、实验内容

    动态显示:按图19连接好电路,将8255的A口PA0~PA6分别与七段数码管的段码驱动输入端a~g相连,位码驱动输入端S1接+5V(选中),S0、dp接地(关闭)。编程从键盘输入一位十进制数字(0~9),在七段数码管上显示出来。

三、编程提示

实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。

四、实验原理图:

图19

五、实验源代码

ASM程序:

data  segment

ioport    equ 0d400h-0280h

io8255a   equ ioport+288h

io8255b   equ ioport+28bh

led      db        3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh

mesg1    db        0dh,0ah,'Input a num (0--9h):',0dh,0ah,'$'

data ends

code  segment

assume cs:code,ds:data

start:  mov ax,data

mov ds,ax

mov dx,io8255b           ;使8255的A口为输出方式

mov ax,80h

out dx,al

sss:    mov dx,offset mesg1    ;显示提示信息

mov ah,09h

int 21h

mov ah,01              ;从键盘接收字符

int 21h

cmp al,'0'             ;是否小于0

jl  exit               ;若是则退出

cmp al,'9'             ;是否大于9

jg  exit               ;若是则退出

sub al,30h             ;将所得字符的ASCII码减30H

mov bx,offset led      ;bx为数码表的起始地址

xlat                   ;求出相应的段码

mov dx,io8255a         ;从8255的A口输出

out dx,al

jmp sss                ;转SSS

exit:   mov ah,4ch               ;返回DOS

int 21h

code ends

六、实验运行结果

当从键盘上输入0-9十个数字中的任意一个可以在数码管上显示出来

2、七段数码管静态显示

一、实验内容

动态显示:按图20连接好电路,七段数码管段码连接不变,位码驱动输入端S1,S0接8255 C口的PC1,PC0。编程在两个数码管上显示“56”。

二、实验原理图

图20

三、实验源程序代码

ASM代码:

data  segment

ioport    equ 0d400h-0280h

io8255a   equ ioport+28ah

io8255b   equ ioport+28bh

io8255c   equ ioport+288h

led      db   3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh ;段码

buffer1  db   5,6         ;存放要显示的个位和十位

bz       dw   ?           ;位码

data ends

code  segment

assume cs:code,ds:data

start:  mov ax,data

mov ds,ax

mov dx,io8255b             ;将8255设为A口输出

mov al,80h

out dx,al

mov di,offset buffer1        ;设di为显示缓冲区

loop2:  mov bh,02

lll:    mov byte ptr bz,bh

push di

dec di

add di, bz

mov bl,[di]                  ;bl为要显示的数

pop di

      mov al,0

      mov dx,io8255a

      out dx,al

mov bh,0

mov si,offset led            ;置led数码表偏移地址为SI

add si,bx                    ;求出对应的led数码

mov al,byte ptr [si]

mov dx,io8255c               ;自8255A的口输出

out dx,al

mov al,byte ptr bz           ;使相应的数码管亮

mov dx,io8255a

out dx,al

mov cx,3000

delay:  loop delay                   ;延时

mov bh,byte ptr bz

shr bh,1

jnz lll

mov dx,0ffh

mov  ah,06

int  21h

je  loop2                   ;有键按下则退出

mov dx,io8255a

mov al,0                    ;关掉数码管显示

out dx,al

mov ah,4ch                  ;返回

int 21h

code ends

end start

四、实验运行结果

数码管显示56并保持不变。

实验四  交通灯控制实验

一.实验目的

通过并行接口8255实现十字路口交通灯的模拟控制,进一步掌握对并行口的使用。

二.实验内容

如图-29,L7、L6、L5作为南北路口的交通灯与PC7、PC6、PC5相连,L2、L1、L0作为东西路口的交通灯与PC2、PC1、PC0相连。编程使六个灯按交通灯变化规律亮灭。

三.编程提示:

十字路口交通灯的变化规律要求:

(1) 南北路口的绿灯、东西路口的红灯同时亮30秒左右。

(2) 南北路口的黄灯闪烁若干次,同时东西路口的红灯继续亮。

(3) 南北路口的红灯、东西路口的绿灯同时亮30秒左右。

(4) 南北路口的红灯继续亮、同时东西路口的黄灯亮闪烁若干次。

(5) 转(1)重复。

四.实验原理图

五.源程序代码

ASM程序:

;***********************************;

;*    十字路口红绿灯模拟演示程序   *;

;* 端口各灯的设置:                 *;

;*   1红 1黄 1绿 0 0 2红 2黄 2绿   *;

;***********************************;

io8255a        equ 28ah-0280h

io8255b        equ 28bh-0280h

io_port_addre  equ 0cf8h                         ;32位配置地址端口

io_port_data   equ 0cfch                         ;32位配置数据端口

io_plx_id      equ 0540610b5h                  ;TPC卡设备及厂商ID

data segment

portc1  db  24h,44h,04h,44h,04h,44h,04h   ;六个灯可能

db  81h,82h,80h,82h,80h,82h,80h   ;的状态数据

db  0ffh                          ;结束标志

io_9054base_address     db 4 DUP(0) ;TPC卡9054芯片I/O基地址暂存空间

io_base_address         db 4 DUP(0)       ;TPC卡I/O基地址暂存空间

memory_base_address     db 4 DUP(0)    ;TPC卡MEMORY基地址暂存空间

interrupt_line          db 2 DUP(0)           ;TPC卡中断号暂存空间

pcicardnotfind       db 0dh,0ah,'TPC pci card not find or address/interrupt error !!!',0dh,0ah,'$'

io9054baseaddress       db 0dh,0ah,'TPC pci card 9054 Chip I/O Base Address : ','$'

iobaseaddress           db 0dh,0ah,'TPC pci card I/O Base Address : ','$'

memorybaseaddress       db 0dh,0ah,'TPC pci card Memory Base Address : ','$'

intnumber               db 0dh,0ah,'TPC pci card Interrupt Line : ','$'

enter_return            db 0dh,0ah,'$'

data ends

stacks segment

db 100 dup(?)

stacks ends

code  segment

assume  cs:code,ds:data,SS:STACKS,es:data

.386    ;386模式编译

start:

mov   ax,data

mov   ds,ax

mov es,ax

mov ax,stacks

mov ss,ax

call findtpc1          ;查找TPC卡资源并显示

mov  dx,word ptr io_base_address

add  dx,io8255b

mov   al,90h

out   dx,al           ;设置8255为C口输出

mov  dx,word ptr io_base_address

add  dx,io8255a

re_on:   mov   bx,0

on:      mov   al,portc1[bx]

cmp   al,0ffh

jz    re_on

out   dx,al           ;点亮相应的灯

inc   bx

mov   cx,20           ;参数赋初值

test  al,21h          ;是否有绿灯亮

jz    de1             ;没有,短延时

mov   cx,2000         ;有,长延时

de1:    mov   di,9000         ;di赋初值5000

de0:    dec   di              ;减1计数

jnz   de0             ;di不为0

loop  de1

push dx

mov ah,06h

mov dl,0ffh

int 21h

pop dx

jz  on                ;没有,转到on

exit:                                 mov   ah,4ch          ;返回DOS

int   21h

findtpc1 proc near   ;查找TPC卡资源并显示

pushad

pushfd

mov ebx,080000000h

findtpc1_next:

add ebx,100h

cmp ebx,081000000h

jnz findtpc1_continue

mov dx,offset pcicardnotfind             ;显示未找到tpc卡提示信息

mov ah,09h

int 21h

mov ah,4ch

int 21h              ;退出

findtpc1_continue:

mov dx,io_port_addre

mov eax,ebx

out dx,eax           ;写地址口

mov dx,io_port_data

in  eax,dx           ;读数据口

cmp eax,io_plx_id

jnz findtpc1_next    ;检查是否发现tpc卡

mov dx,io_port_addre

mov eax,ebx

add eax,14h

out dx,eax            ;写地址口

mov dx,io_port_data

in  eax,dx            ;读数据口

mov dword ptr io_9054base_address,eax

and eax,1

jz findtpc1_next       ;检查是否为i/o基址信息

mov eax,dword ptr io_9054base_address

and eax,0fffffffeh

mov dword ptr io_9054base_address,eax        ;去除i/o指示位并保存

mov dx,io_port_addre

mov eax,ebx

add eax,18h

out dx,eax           ;写地址口

mov dx,io_port_data

in  eax,dx           ;读数据口

mov dword ptr io_base_address,eax

and eax,1

jz findtpc1_next    ;检查是否为i/o基址信息

mov eax,dword ptr io_base_address

and eax,0fffffffeh

mov dword ptr io_base_address,eax      ;去除i/o指示位并保存

mov dx,io_port_addre

mov eax,ebx

add eax,1ch

out dx,eax        ;写地址口

mov dx,io_port_data

in  eax,dx       ;读数据口

mov dword ptr memory_base_address,eax

and eax,1h

jnz findtpc1_next   ;检查是否为memory基址信息

mov eax,dword ptr memory_base_address

and eax,0fffffff0h

mov dword ptr memory_base_address,eax      ;去除memory指示位并保存

mov dx,io_port_addre

mov eax,ebx

add eax,3ch

out dx,eax                         ;写地址口

mov dx,io_port_data

in  eax,dx                         ;读数据口

and eax,0ffh

mov word ptr interrupt_line,ax    ;去除interrupt其它指示位并保存

mov dx,offset io9054baseaddress    ;显示i/o提示信息

mov ah,09h

int 21h

mov ax,word ptr io_9054base_address

call findtpc1_disp                ;显示i/o基地址

mov dx,offset iobaseaddress       ;显示i/o提示信息

mov ah,09h

int 21h

mov ax,word ptr io_base_address

call findtpc1_disp                ;显示i/o基地址

mov dx,offset memorybaseaddress   ;显示memory提示信息

mov ah,09h

int 21h

mov ax,word ptr memory_base_address+2

call findtpc1_disp               ;显示memory基地址高16位

mov ax,word ptr memory_base_address

shr ax,16

call findtpc1_disp              ;显示memory基地址低16位

mov dx,offset intnumber          ;显示interrupt提示信息

mov ah,09h

int 21h

mov ax,word ptr interrupt_line

call findtpc1_disp                  ;显示interrupt号

mov dx,offset enter_return          ;加回车符,换行符

mov ah,09h

int 21h

popfd

popad

ret

findtpc1 endp

findtpc1_disp proc near             ;显示子程序

push dx

push cx

push bx

mov cx,4

mov bx,16

findtpc1_disp_loop1:

push ax

push cx

sub bx,4

mov cx,bx

shr ax,cl

and al,0fh                  ;首先取低四位

mov dl,al

cmp dl,9                     ;判断是否<=9

jle findtpc1_disp_num        ;若是则为'0'-'9',ASCII码加30H

add dl,7                     ;否则为'A'-'F',ASCII码加37H

findtpc1_disp_num:

add dl,30h

mov ah,02h                   ;显示

int 21h

pop cx

pop ax

loop findtpc1_disp_loop1

pop bx

pop cx

pop dx

ret                        ;子程序返回

findtpc1_disp endp

code ends

end start

芯片8255的初始化程序片段是:

mov  dx,word ptr io_base_address

add  dx,io8255b

mov   al,90h

out   dx,al           ;设置8255为C口输出

mov  dx,word ptr io_base_address

add  dx,io8255a

re_on:   mov   bx,0

on:      mov   al,portc1[bx]

cmp   al,0ffh

jz    re_on

out   dx,al      

六、试验运行结果:

修改程序第53、56和57行的cx、cx、di的值,可以改变红黄绿等的点亮时间,具体如下:

1)cx=6000、cx=40000、di=50000时,东西向的绿灯和黄灯依次分别点亮1秒,红灯灭,此时南北向的红灯点亮2秒,绿灯和黄灯灭;接着南北向的绿灯和黄灯依次分别点亮1秒,红灯灭,此时东西向的红灯点亮2秒,绿灯和黄灯灭。并依次循环。

2)cx=7000、cx=50000、di=60000时,东西向的绿灯和黄灯依次分别点亮2秒,红灯灭,此时南北向的红灯点亮4秒,绿灯和黄灯灭;接着南北向的绿灯和黄灯依次分别点亮2秒,红灯灭,此时东西向的红灯点亮4秒,绿灯和黄灯灭。并依次循环。

3)cx=8000、cx=65535、di=65535时,东西向的绿灯和黄灯依次分别点亮2.5秒,红灯灭,此时南北向的红灯点亮5秒,绿灯和黄灯灭;接着南北向的绿灯和黄灯依次分别点亮2.5秒,红灯灭,此时东西向的红灯点亮5秒,绿灯和黄灯灭。并依次循环。

4)cx=65535、cx=65535、di=65535时,东西向的绿灯点亮2.5秒,黄灯点亮12.5秒,同时黄灯闪烁的频率变慢,红灯灭,此时南北向的红灯点亮,15秒,绿灯和黄灯灭;接着南北向的绿灯点亮2.5秒,黄灯点亮12.5秒,同时黄灯闪烁的频率变慢,红灯灭,此时东西向的红灯点亮15秒,绿灯和黄灯灭。并依次循环。

 

第二篇:微型计算机原理与接口技术 实验报告册

河南省高等教育自学考试

实  验  报  告  册

汽车检测与维修专业(本科)

《微型计算机原理与接口技术》

市    地:_______________

考生姓名:_______________

准考证号:_______________

河南科技大学高等教育自学考试办公室

___________


注 意 事 项

1、各助考单位可就近选择定点实验单位安排考生完成实验任务。定点实验单位必须根据自身实验条件,开出某一门课程的全部实验,并要求考生将这一门课程全部实验一次性全部完成。若定点实验单位不能开出课程全部实验,则考生必须另选其它定点单位完成这一门课程的实验。一门课程实验不允许考生跨单位分项完成,否则,实验成绩不予承认。

2、要求考生选择这一门课程至少3个实验,要求独立完成。

3、考生在实验前应认真预习实验指导书的有关内容,遵守实验操作规程,确保人身和设备安全,认真做好每一个实验,并独立完成实验报告,有问答题的实验,必须认真回答,不能空项。填写实验报告,必须使用黑或兰黑钢笔(插图可用铅笔),要求字迹整洁。

4、实验指导教师应按指导书要求,指导考生完成试验并认真批阅实验报告。确定初评成绩。填写您所负责的某一门课程的实验报告评分栏,加盖实验单位印章。

5、考生做实验时,应持本报告册。完成实验后由考绩所在助学单位统一送到主考学校。考核合格者的发给“实验环节考核合格证书”,作为考生取得毕业资格的依据之一。


目 录

一、实验一:DEBUG的启动及其基本命令的使用——————————1

二、实验二:仿真软件EMU8086的认识实验——————————— 5

三、实验三:存储器(RAM 6264)扩展————————————— 7

四、实验报告评分栏———————————————————— 9


实验一 DEBUG的启动及其基本命令的使用

一、实验学时

1学时。

二、实验目的

    掌握DEBUG 的基本命令及其功能。

三、实验设备

计算机。

四、实验内容

DEBUG是专门为汇编语言设计的一种调试工具,它通过步进,设置断点等方式为汇编语言程序员提供了非常有效的调试手段。

1DEBUG程序的启动

在DOS提示符下,可键入命令:

C>DEBUG[d:][path][文件名][ 参数1][参数2]

其中文件名是被调试文件的名称,它须是执行文件(EXE),两个参数是运行被调试文件时所需要的命令参数,在DEBUG程序调入后,出现提示符“-”,此时,可键入所需的DEBUG命令。

在启动DEBUG时,如果输入了文件名,则DEBUG程序把指定文件装入内存。用户可以通过DEBUG的命令对指定文件进行修改、显示和执行。如果没有文件名,则是以当前内存的内容工作,或者用命名命令和装入命令把需要的文件装入内存,然后再用DEBUG的命令进行修改、显示和执行。

2DEBUG的主要命令

1)汇编命令A,格式为:

-A[地址]

该命令从指定地址开始允许输入汇编语句,把它们汇编成机器代码相继存放在从指定地址开始的存储器中。

2)反汇编命令U,有两种格式:

1)-U[地址]

该命令从指定地址开始,反汇编32个字节,若地址省略,则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。

2)-U范围

该命令对指定范围的内存单元进行反汇编,例如:

-U 04BA:0100 0108或 –U 04BA:0100 L9

此二命令是等效的。

3)运行命令G,格式为:

-G [=地址1][地址2[地址3。。。]]

其中地址1规定了运行起始地址,后面的若干地址均为断点地址。

4)追踪命令T,有两种格式:

1)逐条指令追踪:

    -T[=地址]

    该命令从指定地址起执行一条指令后停下来,显示寄存器内容和状态值。

2)多条指令追踪:

    -T[=地址][值]

该命令从指定地址起执行n条命令后停下来,n由[值]确定。

5)显示内存单元内容的命令D,格式为:

-D[地址]或-D[范围]

6)修改内存单元内容的命令E,它有两种格式:

1)用给定的内容代替指定范围的单元内容:

-E地址  内容表

 例如:-E 2000:0100  F3 “XYZ” 8D

其中F3,“X”“Y”“Z”和8D各占一个字节,用这五个字节代替原内存单元2000:0100到0104的内容,“X”“Y”“Z”将分别按它们的ASCII码值代入。

2)逐个单元相继地修改:

-E地址

例如:-E 100:

       18E4:0100 89.78

此命令是将原100号单元的内容89改为78。78是程序员键入的。

7)检查和修改寄存器内容的命令R,它有三种方式:

1)显示CPU内部所有寄存器内容和标志位状态;格式为:-R

R命令显示中标志位状态的含义如下表所示:

2)显示和修改某个指定寄存器内容,格式为:

-R 寄存器名

例如打入:-R AX

系统将响应如下:

    AX  FIF4

    :

表示AX当前内容为F1F4,此时若不对其作修改,可按ENTER键,否则,打入修改后内容,如:

-R BX

BX 0369

:059F

则BX内容由0369改为059F

3)显示和修改标志位状态,命令格式为:

-RF

系统将给出响应,如

OV DN EI NG ZR AC PE CY-

这时若不作修改可按ENTER键,否则在“-”号之后键入修改值,键入顺序任意。如

OV DN EI NG ZR AC PE CY-PONZDINV

8)命名命令N,格式为:

-N 文件名

此命令将文件名格式化在CS:5CH的文件控制块内,以便使用L或W命令把文件装入内存进行调试或者存盘。

9)装入命令L,它有两种功能:

1)把磁盘上指定扇区的内容装入到内存指定地址起始的单元中,格式为:

-L  地址  驱动器  扇区号  扇区数

2)装入指定文件,格式为:

-L [地址]

此命令装入已在CS:5CH中格式化的文件控制块所指定的文件。

在用L命令前,BX和CX中应包含所读文件的字节数。

10)写命令W,有两种格式:

1)把数据写入磁盘的指定扇区:

-W  地址  驱动器  扇区号  扇区数

2)把数据写入指定文件中:

-W  [地址]

此命令把指定内存区域中的数据写入由CS:5CH处的FCB所规定的文件中。在用W命令前,BX和CX中应包含要写入文件的字节数。

11)退出DEBUG命令Q,该命令格式为

Q

它退出DEBUG程序,返回DOS,但该命令本身并不把在内存中的文件存盘,如需存盘,应在执行Q命令前先执行写命令W。

五、实验要求:

用汇编语言编写一个计算“3+5”的加法程序

六、实验报告:

1.实验目的

2.程序清单

3.试验中出现的问题及解决方法

4.写出在DEBUG状态下编写、运行程序的过程以及调试所中遇到的问题是如何解决的,并对调试过程中的问题进行分析,对执行结果进行分析。


实验二 仿真软件EMU8086的认识实验

一、实验学时

1学时。

二、实验目的

    熟悉EMU8086的开发环境,为后续的汇编语言程序设计与调试运行做好准备。

三、实验设备

计算机。

四、实验内容

1.熟悉EMU8086开发环境的菜单命令以及工具栏按钮的功能。

2.熟悉汇编程序的编辑、编译、仿真运行及调试的基本过程。

五、实验步骤

1.进入EMU8086的开发环境,新建一个文件,使用“COM Template”选项。

2.在编辑窗口中的 ORG  100h 后键入如下程序:

             

3.使用Emulate仿真功能编译程序并进入Emulator仿真界面。如果编译过程中报错,请根据提示信息除错,然后重新编译直到通过。

4.在仿真界面中使用Single Step单步执行程序,观察程序的运行状况及各寄存器的变化(蓝色高亮显示)。利用ALU和FLAGS按钮可以查看运算过程及各标志位的变化情况。

5.程序运行结束后记录AX、BL和CX的值。(重新加载程序请使用RELOAD按钮)。

6.更改源程序里AX的初始值为7FF8H,重复步骤3~5。比较两次结果的不同之处,解释原因。(数值转换查看功能在MATH菜单中)

7.对已讲授的各类汇编指令用上面的步骤调试运行,加深对指令功能及要点的掌握。

六、实验报告

1.实验目的

2.程序清单

3.试验中出现的问题及解决方法

4.无符号数和有符号数在汇编程序里如何区分?

实验四 存储器(RAM 6264)扩展

一、实验学时

2学时。

二、实验目的

1.熟悉随机存储器RAM 6264的使用方法及计算机扩展存储器的方法。

2.了解PC机62芯总线信号的定义及其选用方法。

3.掌握对外部存储器进行读、写的编程方法。

4.学习用软件编辑、汇编、连接和调试源程序。

三、实验设备

计算机;微机原理实验系统;RAM6264芯片。

四、实验内容

1.设计扩展一片数据存储器6264芯片实验系统的外部存储器。

2.设计一段程序,将一组数据(00H,01H,02H,…,0FEH,0FFH)传送到扩展的外部数据存储器6264中去。

五、实验原理

6264是8K×8位的静态随机读写存储器。微处理器通过数据总线、地址总线和控制总线与存储器连接。6264有13条地址线A0~A12。其片选信号由译码电路产生。计算机通过总线信号MEMR、MEMW对6264进行读写处理。

六.编程提示

1.通过实验接线图,确定扩展的6264在实验系统中的地址范围。

2.扩展的6264的段地址送入段寄存器DS,偏移地址送入BX。

七.实验步骤

1.按实验要求连接硬件线路;

2.编辑按实验要求设计的汇编语言源程序;

3.汇编、连接汇编语言源程序生成可执行文件;

4.装载可执行文件,调试、运行程序并检验、记录结果;

八.预习要求

1.复习有关存储器及其扩展的内容;

2.复习PC机62芯总线信号的内容;

3.按照实验要求事先设计好有关硬件线路;

4.按照实验要求事先设计、编写好汇编语言源程序。

九.实验报告

1.画出硬件原理图,分析各部分的功能。

2.写出程序清单并进行注释。

3.画出程序流程框图。

4.分析调试、运行结果。

5.RAM 6264的存储空间有多大?寻址范围是多少?


高等教育自学考试实验报告评分栏

完成实验数量:___________________________________________

实 验 单 位 :_______________________________________(公章)

实 验 日 期 :___________________________________________

指 导 教 师 :___________________________________________

指导教师初评成绩:_______________________________________

主考院校审定成绩:_______________________________________

审定成绩时间:___________________________________________

相关推荐