河北大学微型计算机原理,微型机技术技术

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

实验1

1:在河大FTP上下载。

PUB文件夹中的编程开发文件夹中找到MASM6。0其中包括masm.exe和link.exe

2:masm.exe将后缀名为:asm的文件生成为obj

link.exe将.obj编译成.exe的文件

3:先将原文件.asm用masm.exe在dos中生成.obj文件再用link.exe连接成.exe文件

4:在dos中选择.exe文件.根据提示选择生成可执行性文件(.exe)后在dos下输入文件所在目录然后输入文件名.按回车出现播放音乐列表.按shift+字母选中播放音乐.按shift+Q退出.

实验2

1:宏指令与子程序的异同

宏指令和子程序都可以被多次调用。

子程序汇编成目标代码的过程只进行一次。用到宏指令的地方。都要对宏指令进行汇编

子程序无参数,调用其那应事先设置好寄存器等,宏指令可以使用带参数调用。

区别于高级语言。高级语言的子程序可以带参数。

2。START 伪指令指示程序的开始

3。 程序中定义3数据段 。代码段。堆栈段三个段。

程序中用DATA定义数据段,用CODE指定代码

用STACK指定堆栈段。

4。

DSEG SEGMENT;数据段:在此处添加程序所需的数据

DSEG ENDS

CSEG SEGMENT

assume cs:CSEG,ds:DSEG,es:ESEG,ss:ssEG

MAIN PROC FAR:主程序入口

mov ax,dseg

mov ds,ax

mov ax,eseg

mov es,ax

此处添加主程序代码

按任意键退出

mov ah,1

int 21h

mov ax,4c00h;程序结束,返回到操作系统

int 21h

MAIN ENDP

CSEG ENDS

END MAIN

实验三

1:用伪指令定义DB,DW

格式:【变量名】定义数据伪指令

例:DB 100;A为一个字节,值为100

DW 23;H为一个字,存放顺序为06. 00H

2:

SHOW MACRO b

LEA DX ,b

MOV AH 9

INT 21

ENDM

DATA ENDS

STACK SEGMENT

DB 200 DUP ('STACK')

STACK ENDS

CODE SEGMENT

ASSUME DS:DATA,SS:STACK,CS:CODE

START:

MOV AX,DATA

MOV DS,AX

show INFO1

show INFO2

MOV AF 4CH

INT 21H

CODE ENDS

END START

3:

DATAS SEGMENT

INF01 DB ODH;OAH 'YES'

INF02 DB ODH;OAH 'NO'

data ends

code segment

assume cs:code, ds:data

start:

mov ax, data

mov ds, ax

mov AH 01H

INT 21H

CMP AL,'A'

IN2 SHOWNO

LEA DX,INF01

JMP RETORN

SHOW NO:

LEA DX,INF02

R ETURN

MOV AH,9 INT 21H

MOV AH,HCH

INT 21H

CODES ENDS

STERT ENDS

4:4CH功能在于让你退出程序,调用程序 由上面AH决定,退出程序时使用;

实验三

1:用伪指令定义DB,DW

格式:【变量名】定义数据伪指令

例:DB 100;A为一个字节,值为100

DW 23;H为一个字,存放顺序为06. 00H

2:

SHOW MACRO b

LEA DX ,b

MOV AH 9

INT 21

ENDM

DATA ENDS

STACK SEGMENT

DB 200 DUP ('STACK')

STACK ENDS

CODE SEGMENT

ASSUME DS:DATA,SS:STACK,CS:CODE

START:

MOV AX,DATA

MOV DS,AX

show INFO1

show INFO2

MOV AF 4CH

INT 21H

CODE ENDS

END START

3:

DATAS SEGMENT

INF01 DB ODH;OAH 'YES'

INF02 DB ODH;OAH 'NO'

data ends

code segment

assume cs:code, ds:data

start:

mov ax, data

mov ds, ax

mov AH 01H

INT 21H

CMP AL,'A'

IN2 SHOWNO

LEA DX,INF01

JMP RETORN

SHOW NO:

LEA DX,INF02

R ETURN

MOV AH,9 INT 21H

MOV AH,HCH

INT 21H

CODES ENDS

STERT ENDS

4:4CH功能在于让你退出程序,调用程序 由上面AH决定,退出程序时使用;

题目

(1)编写名为int_func的中断程序,仅需写出必要的代码框架。

(2)如果要通过指令“int 50h”来调用int_func,应该如何填写中断向量表,写出必要的代码片段。

(3)若要通过8259的3号中断引脚来触发int_func,应选择哪个向量号?写出填写向量表以及设置8259的必要代码片段

实验5

1.中断程序名 proc

...

功能代码

...

iret

中断程序名 endp

2.cli

push ds

mov ax;0000h

mov ds,ax

mov si soh*4

mov word ptr[si],offset intfunc

mov word ptr[sit2],seg intfunc

pop ds

sti

3.(1)OBH

(2)Cli

pash ds

mov ds,ax

mov si,OBH*4

mov word ptr[si],offset int-funce

mov word ptr[si+2],seg int-funce

pop ds

sti

置3号引脚工作状态

in al,2h

and al,111,10111b

out 21H,al

清除8259中断服务位

mov al,01100011B

mov 20h,al

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值