0BB0:2003 B91000 MOV CX,0010 0BB0:2006 8A440F MOV AL,[SI+0F] 0BB0:2009 88441B MOV [SI+1B],AL 0BB0:200C 4E DEC SI 0BB0:200D E2F7 LOOP 2006 0BB0:200F CC INT 3
从3500开始输入00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15,运行程序,得到:
3、无序数据块的递增排序
1)程序设计思想和要求
在首址为3000H 的数据区中存放着一组无符号数, 数据的长度存于3500H单元内,要求用冒泡法对该区中的数据按递增次序排列。
冒泡法的基本思想是从最后一个数(或从第一个数)开始,依次把相邻两个数比较,即第N个数与第N-1个数比较?,若大则交换,否则不交换,直到N个数都比较完为止。此时,其中最小数排在最前列。然后将剩下的N-1个数再按前述方法进行,找到N-1个数中最小的数。以后重复进行,直到全部按序排列。 2)实验步骤
(1)编写程序。
(2)在DEBUG下键入程序并检查(程序可存放于2000H-8000H单元,只要不与数据区重叠即可)。
(3)确定数据个数并输入3500H单元中,在首址为3500H的数据区中存入任意无符号数。 (4)运行程序并检查运行结果。
(6)反复修改数据个数和数据区中的数,运行程序、观察结果,验证程序的正确性。 DATA SEGMENT ARRAY DB 89,67,10,1,29,100,98,45 COUNT EQU 8
21
FLAG DB -1 DATA ENDS
STACK SEGMENT PARA STACK 'STACK' DB 100 DUP(?) STACK ENDS
CODE SEGMENT ASSUME DS:DATA,CS:CODE SORT: MOV AX,DATA MOV DS,AX MOV BX,COUNT LP1: CMP FLAG,0 JE EXIT DEC BX MOV CX,BX MOV SI,0 MOV FLAG,0
LP2: MOV AL,ARRAY[SI] CMP AL,ARRAY[SI+1] JBE NEXT XCHG AL,ARRAY[SI+1] MOV ARRAY[SI],AL MOV FLAG,-1 NEXT: ADD SI,1 LOOP LP2 JMP LP1
EXIT: MOV AH,4CH INT 21H CODE ENDS END SORT
22
4、求数的平方根
1)程序设计思想和要求
减奇数法是一种求取近似平方根和平方根的整数部分的方法。有公式:
n
2
?(2K-1)=N
k=1
若要求数S的平方根?S, 则可以从S中减去奇数1、3、5?直到减为零或不够减下一个奇数为止,然后统计减去的奇数个数,它就是S的近似平方根。
被开方数为一个足够大的二进制数, 存于首址为4000H的单元内,它的方根存放在以4500H为首的单元内。
2)实验步骤
(1)编写程序。
DATA SEGMENT ORG 4000H
S DW 12345 ;3039H,开方后约为111(6FH) DB 4FEH DUP(?) SQ DW ?
DATA ENDS
STACK SEGMENT PARA STACK 'STACK' DB 100 DUP(?) STACK ENDS
23
CODE SEGMENT ASSUME DS:DATA,CS:CODE START: MOV AX,DATA MOV DS,AX MOV CX,0000H MOV BX,0001H MOV AX,S LP: SUB AX,BX ADD BX,2 INC CX CMP AX,0000H JE EXIT CMP AX,BX JLE EXIT JMP LP EXIT: MOV SQ,CX MOV AH,4CH INT 21H CODE ENDS END START
(2)在DEBUG下输入程序并检查(程序可存放于2000H-8000H单元,和数据存放单元不要重叠)。
(3)在4000H为首的单元中存入一个任意大的数。 (4)运行程序并检查运行结果。
(6)反复修改被开方数,运行程序、观察结果,验证程序的正确性。
实验三 DOS系统功能调用及模块化程序设计
一、实验目的
2、 熟悉DOS系统中基本功能子程序的作用及其调用方法。
3、 结合DOS系统中键盘和显示功能子程序的调用和汇编语言源程序结构设计有关程序。 4、 掌握复杂程序的设计思想—模块化程序设计的方法。
24
二、实验设备
PC机一台,装有DOS基本系统和MASM宏汇编软件。
三、实验内容及步骤
(一)DOS键盘、显示基本功能子程序调用
DOS提供了许多系统功能子程序可由程序设计者调用,其中最基本的是键盘和显示操作功能的调用,具体调用的方法可参阅教科书。
1、 显示缓冲区的字符串 1)实验程序:
DSEG SEGMENT STRING DB 'Welcome to DONG HUA University!',0dH,0aH,'$' DSEG ENDS
STACK SEGMENT PARA STACK 'STACK' DB 256 DUP (?) STACK ENDS
CSEG SEGMENT MAIN PROC FAR ASSUME CS: CSEG, DS: DSEG , SS: STACK START: PUSH DS MOV AX, 0 PUSH AX MOV AH,9 MOV DX,SEG STRING MOV DS,DX MOV DX,OFFSET STRING INT 21H RET MAIN ENDP CSEG ENDS END START 2) 实验步骤: (1)建立源程序文件。
(2)用MASM宏汇编程序和LINK连接程序生成执行程序。 (3)运行执行程序,输入不同字母,观察结果。
25
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说教育文库东华微机实验aaa(5)在线全文阅读。
相关推荐: