微机系统实验报告材料

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

电子科技大学实验报告

实验一汇编语言编程实验

一、实验目的

(1)掌握汇编语言的编程方法

(2)掌握 DOS 功能调用的使用方法

(3)掌握汇编语言程序的调试运行过程

二、实验设备

PC 机一台。

三、实验容

1. 将指定数据区的字符串数据以ASCII码形式显示在屏幕上,并通过DOS功能调用完成必要提示信息的显示。

2. 在屏幕上显示自己的学号信息。

3. 循环从键盘读入字符并回显在屏幕上,然后显示出对应字符的ASCII码,直到输入”Q”或“q”时结束。

4. 自主设计输入显示信息,完成编程与调试,演示实验结果。

四、实验源码

DA TA SEGMENT

DISCHA DB'WangHan 14030188004',0AH,0DH,'$'

TAB DB' ',0AH,0DH,'$'

BLANK DB' $'

DA TA ENDS

STACK SEGMENT

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DA TA,SS:STACK

START:

MOV AX,SEG DISCHA

MOV DS,AX

MOV DX,OFFSET DISCHA

MOV AH,09H

INT 21H

NEXT:

MOV AH,01H

INT 21H

CMP AL,'Q'

JE ENDSS

CMP AL,'q'

JE ENDSS

MOV BL,AL

MOV AX,SEG BLANK

MOV DS,AX

MOV DX,OFFSET BLANK

MOV AH,09H

INT 21H

MOV BH,0AH

MOV DL,BL

MOV CL,04H

SHR DL,CL

CMP DL,BH

JNL Q3

JMP Q2

Q1:

ADD DL,07H

Q2:

ADD DL,30H

MOV AH,02H

INT 21H

MOV DL,BL

MOV DH,0FH

AND DL,DH

CMP DL,BH

JNL Q3

JMP Q4

Q3:

ADD DL,07H

Q4:

ADD DL,30H

MOV AH,02H

INT 21H

MOV AX,SEG TAB

MOV DS,AX

MOV DX,OFFSET TAB

MOV AH,09H

INT 21H

MOV CX,0009H

LOOP NEXT

ENDSS:

MOV AH,4CH

INT 21H

CODE ENDS

END START

五、程序流程图

如下图1.2所示

图1.2程序流程图

实验二数码转换实验

一、实验目的

1. 掌握不同进制数及编码相互转换的程序设计方法。

2. 掌握运算类指令编程及调试方法。

3. 掌握循环程序的设计方法。

二、实验设备

PC 机一台。

三、实验容

1. 重复从键盘输入不超过5位的十进制数,按回车键结束输入;

2. 将该十进制数转换成二进制数;结果以2进制数的形式显示在屏幕上;

3. 如果输入非数字字符,则报告出错信息,重新输入;

4. 直到输入“Q”或‘q’时程序运行结束。

5. 键盘输入一字符串,以空格结束,统计其中数字字符的个数,在屏幕显示

四、实验原理

十进制数可以表示为:D

n *10n+D

n-1

*10n-1+…+D

*100=∑ D

i

*10i

其中D

i

代表十进制数1、2、3、…、9、0。

上式可以转换为:∑ D

i *10i=(((D

n

*10+D

n-1

)*10+ D

n-2

)*10+…+ D

1

)*10+ D

由上式可归纳出十进制数转换为二进制数的方法:从十进制数的最高位D

n

开始做乘10加次位的操作,依此类推,则可求出二进制数结果。

表2.1 数码转换关系对应表

五、实验源码

1、数制转换

assume cs:code

data segment

est db " Error:Input invalid",0ah,0dh,'$' data ends

stack segment

stk db 64 dup (0)

stack ends

code segment

start:

mov ax,stack

mov ss,ax

mov sp,offset stk

mov ax,data

mov ds,ax

rf:

mov cx,5

mov ax,0

mov dx,0

mov si,0

mov di,0

rr:

mov ah,01h

int 21h

cmp al,0dh

je rend

cmp al,'q'

je qt

cmp al,'Q'

je qt

cmp al,'0'

jl err

cmp al,'9'

jg err

jmp cnt

err:

call perr

cnt:

sub al,'0'

mov bh,0

mov bl,al

mov ax,di

push bx

mov bx,10

mul bx

相关文档
最新文档