微机原理实验

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

;实验一汇编程序、链接程序、编辑程序及调试程序得基本使用方法

;一、实验目得

;1.熟悉在PC机上建立、汇编、连接、调试与运行汇编语言程序得过程。

;2.掌握字符串得复制,并会用各种方法实现。

;3.掌握字符串显示得DOS功能调用。

;二、实验内容及要求

;1.将以符号地址为ARRAY1开始得字符串“请自己定义”复制到ARRAY2开始得存储单元中并显示在屏幕上。

;2、使用三种方法传送:

;(1) 用MOV指令传送

;(2) 用基本串传送指令

;(3) 重复串传送指令

MY_DATA SEGMENT PARA 'DATA';数据段

DISP1 DB 'How are you?',0aH,0DH,'$';

ARRAY1 DB 'DI',41H,'NZI09','$';

ARRAY2 DB 20 dup(0)

MY_DATA ENDs

MY_CODE SEGMENT PARA 'CODE' ;代码段

MY_PROC PROC FAR

ASSUME CS:MY_CODE, DS:MY_DATA

START: MOV AX,MY_DA TA

MOV DS,AX

MOV ES,AX

LEA DX,DISP1;显示提示字符串

MOV AH,09H

INT 21H

;;开始(1) 用MOV指令传送

;LEA SI,ARRAY1;

;LEA DI,ARRAY2;

;MOV CX,09H

LOOP1: ;MOV BH, [SI]

;MOV [DI], BH

;INC SI

;INC DI

;LOOP LOOP1

;;开始(2) 用基本串传送指令

LEA SI,ARRAY1;

LEA DI,ARRAY2;

MOV CX,09H

CLD

LOOP2: MOVSB

LOOP LOOP2

;;开始(3) 重复串传送指令

;LEA SI,ARRAY1;

;LEA DI,ARRAY2;

;MOV CX,09H

;CLD

;REP MOVSB

;将ARRY2中得字符串显示出来,便于判断就是否传送正确。

LEA DX,ARRAY2;显示信息

MOV AH,09H

INT 21H

EXIT: MOV AX,4C00H

INT 21H

MY_PROC ENDp

MY_CODE ENDS

END START

实验二分支程序设计

;一、实验目得

;1.掌握分支程序得设计方法。

;2、掌握提示信息得使用方法及键盘输入得用法。

;3、学会使用字符串比较。

;二、实验内容及要求

;在屏幕上显示“Please input your telephone number:”,根据提示输入8位电话号码,

;屏幕上下一行显示“Please input your ;telephone number again:”,再次输入8位相同电话号码, ;比较两次输入得数据,如果相同则显示“Success!”,

;不相同则显示“Your ;telephone number isn’t match, please try again、”,直到输入正确为止。MY_DATA SEGMENT PARA 'DATA';数据段

;开辟输入缓冲区1,存放第一次输入得8位电话号码。

NUMBER1 DB 9 ;最多可以键入9个字符(包括回车符ODH)

ACTLEN1 DB ? ;实际键入得字符数

CHARS1 DB 9 DUP('A'),0aH,0DH,'$';实际键入得字符从此开始存放,为了显示输入得号码,特别加了字符串结束标志'$'。

;开辟输入缓冲区2,存放第二次输入得8位电话号码。

NUMBER2 DB 9 ;最多可以键入9个字符(包括回车符ODH)

ACTLEN2 DB ? ;实际键入得字符数

CHARS2 DB 9 DUP('A'),0aH,0DH,'$' ;实际键入得字符从此开始存放,为了显示输入得号码,特别加了字符串结束标志'$'。

;定义字符串,作为程序运行中得提示。

DISP1 DB 'Please input your telephone number:',0aH,0DH,'$'

DISP2 DB 'Please input your telephone number again:',0aH,0DH,'$'

RIGHT DB 'Success!',0aH,0DH,'$'

WRONG DB 'Your telephone number isn',27H,'t match, please try again、',0aH,0DH,'$' YourInput DB 'Your input is:','$'

;注意字符串中得“'”要用其ASCII码表示。

MY_DATA ENDs

MY_CODE SEGMENT PARA 'CODE' ;代码段

MY_PROC PROC FAR

ASSUME CS:MY_CODE, DS:MY_DATA

START: MOV AX,MY_DA TA

MOV DS,AX

MOV ES,AX

MOV BL,3 ;允许错误输入得最大次数

LEA DX,DISP1;显示提示字符串

MOV AH,09H

INT 21H

LEA DX,NUMBER1;输入8位电话号码,并放入缓冲区NUMBER1

MOV AH,0AH

INT 21H

LEA DX,YourInput;

MOV AH,09H

INT 21H

LEA DX,CHARS1;显示输入得8位电话号码。

MOV AH,09H

INT 21H

AGAIN: LEA DX,DISP2;显示提示字符串

MOV AH,09H

INT 21H

LEA DX,NUMBER2;再次输入8位电话号码,并放入缓冲区NUMBER2

MOV AH,0AH

INT 21H

LEA DX,YourInput;显示输入得8位电话号码。

MOV AH,09H

INT 21H

LEA DX,CHARS2;显示输入得8位电话号码。

MOV AH,09H

INT 21H

LEA SI,CHARS1;比较两个字符串

LEA DI,CHARS2;

MOV CX,8

CLD

REPE CMPSB

JNZ EXIT1;不相等得话,跳转到EXIT1

LEA DX,RIGHT;显示信息

MOV AH,09H

INT 21H

JMP EXIT

EXIT1: LEA DX,WRONG;显示信息

MOV AH,09H

INT 21H

;JMP AGAIN

DEC BL

相关文档
最新文档