微机原理实验4

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微机原理实验4

一、实验目的

通过本节课的实验,让学生理解和掌握循环程序运行和设计原理,理解构成循环程序的指令功能,特别是对转移指令、循环计数的深入理解,并掌握一些常用循环程序设计的算法。

二、实验内容

[实验内容一]:BIOS显示中断调用——INT 10H

调用步骤:

第一步:置入口参数

第二步:功能号(0至15)送AH

第三步:INT 10H

(1)2号功能,屏幕光标定位

格式:MOV BH,0 ;页号0送BH

MOV DH,行号;行号:0~25

MOV DL, 列号;列号:0~79

MOV AH,2

INT 10H

功能:屏幕光标定位在DH行,DL列。行26x列80

(2)9号功能,在当前光标位置写字符和字符属性

格式:MOV BH , 0

MOV BL, 字符属性码;

MOV AL,‘字符’

MOV AH,9

MOV CX,N

INT 10H

功能:在屏幕光标位置显示N个AL中的‘字符’,并显示字符的属性。

字符属性码(送BL)的含义如下:

说明:

D7:1 前景字符闪烁;0 前景字符不闪烁

D6 D4 D5(RGB):

背景颜色,排列含义如下

000 黑色;001 蓝色;010 绿色;011 青色

100 红色;101 品红; 110 棕色; 111 白色

D4 D3 D2 D1(IRGB):前景颜色,排列含义如下

注:10号功能除不写字符属性外,其它与9 号功能一样。

实验实例1:在宏汇编MASM5.0下,编辑运行下列程序,阅读程序实验运行显示效果。

D:\masm5>edit ab2.asm

data segment

b db 0f0H ;背景色

q db 00H ;前景色

n db 8 ;显示行数data ends

code segment

assume cs:code,ds:data start:mov ax,data

mov ds,ax

mov b,0f0H

mov n,8

aa1:mov bl,b

add bl,q

mov ah,9

mov bh,0

mov al,'*'

mov cx,10 int 10h

mov dl,0dh mov ah,2 int 21h

mov dl,0ah mov ah,2 int 21h

inc q

sub b,10h dec n

jnz aa1

mov ah,4ch int 21h

code ends end start

[实验内容二]:循环程序设计

1、[实验内容] 利用宏汇编MASM5.0编程计算下列各题,并显示结果(注:显示十进制数结果,利用实验3中定义的宏指令)(1)计算5!

(2)计算S=1!+2!+3!+4!+5!

(3)计算S=1×2+2×3+……+10×11

(4)计算S=1+3+5+…+99

(5)计算S=12+22+32+…+102

2、[实验要求] 程序主要代码部分如下,同学们根据汇编语言的格式改成上机实验程序。

(1)第1题主要代码部分

MOV CX,5

MOV AX,1

MOV BX,1

LP1:MUL BX

ADD BX,1

LOOP LP1

(2)第2题主要代码部分

MOV CX,5

MOV AX,1

MOV BX,1

LP1:MUL BX

ADD S,AX ;定义数据段中字变量S,存放阶乘的和。

INC BX

LOOP LP1

(3)第3题主要代码部分

MOV CX,10

MOV S,0 ;定义数据段中字变量S,存放和。

MOV AX,1

MOV BX,2

AA1:MUL BX

ADD S,AX

MOV AX,BX

INC BX

LOOP AA1

(4)第4题主要代码部分

MOV CX,50

MOV S,0

MOV AX,1

AA1:ADD S,AX

ADD AX,2

LOOP AA1

(5)第5题主要代码部分

MOV CX , 10

MOV AX , 1

MOV BX, 1

AA1: MUL BX

ADD S, AX

INC BX

MOV AX, BX

LOOP AA1

[实验内容三]:利用串操作指令中的传送指令,编程从字串变量A处存放的一串字符‘ABC$’传送到字串变量B处,并显示B处该字符串。

程序清单如下:

data segment

A db 'ABC$'

B db 4 dup('$')

data ends

code segment

assume cs:code,ds:data start:mov ax,data

mov ds,ax

mov es,ax

cld

lea si,a

lea di,b

mov cx,4

rep movsb lea dx,b mov ah,9 int 21h

mov ah,4ch int 21h

code ends end start

相关文档
最新文档