第一范文网 - 专业文章范例文档资料分享平台

宏指令及子程序设计实验()

来源:用户分享 时间:2025/6/1 12:07:49 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

宏指令及子程序设计实验

一、实验目的

1、熟悉宏指令、宏定义、宏调用以及宏展开的概念;掌握宏指令的定义与调用的方法。 2、掌握子程序的定义、调用以及调用程序与子程序之间参数的传递方法。 3、了解宏指令与子程序的异同以及各自的适用场合。

二、实验内容

1、

从键盘输入10个无符号十进制数(小于256),将其转换为二进制数并存放在NUM字节型变量中,找出其中的最大数,并将找出的最大数在屏幕上显示出来。

要求:

① 在屏幕上显示字符串提示信息的功能由宏指令DSTRING实现; ② 将键盘输入的十进制数转换成二进制数由子程序DTOB实现;

③ 在N个无符号字节型二进制数中找出最大数的功能由子程序FMAX实现;

④ 将一个无符号字节型二进制数转换为十进制数并在屏幕上显示的功能由子程序BTOAD实现。 程序运行结果如右图所示。

COUNT EQU 10

DATA SEGMENT NUM DB 10 DUP(?) IBUF DB 7,0,6 DUP(?)

OBUF DB 6 DUP(?) INFOR1 DB \ INFOR2 DB \ INFOR3 DB 0AH,0DH,'$' DATA ENDS

STACK SEGMENT stack DATA2 DW 40 DUP(?) TOP EQU LENGTH DATA2 STACK ENDS

CODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START: MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV AX,TOP MOV SP,AX

DSTRING MACRO STRING PUSH DX PUSH AX MOV DX,OFFSET STRING MOV AH,09H INT 21H POP AX POP DX ENDM DSTRING INFOR1 MOV BX,OFFSET NUM MOV CX,COUNT LOOP1: CALL DTOB DSTRING INFOR3 MOV [BX],AL INC BX LOOP LOOP1 MOV AX,OFFSET NUM PUSH AX MOV CX,COUNT PUSH CX CALL FMAX DSTRING INFOR2 CALL BTOAD MOV AH,4CH INT 21H

DTOB PROC NEAR PUSH CX

MOV DX,OFFSET IBUF MOV AH,0AH INT 21H MOV CL,IBUF+1 MOV CH,0 MOV SI,OFFSET IBUF+2 MOV AX,0

AGAIN: MOV DX,10 MUL DX AND BYTE PTR [SI],0FH ADD AL,[SI] ADC AH,00H INC SI LOOP AGAIN POP CX RET

DTOB ENDP

FMAX PROC NEAR MOV AL,NUM MOV SI,OFFSET NUM MOV CX,9 LOOP2: INC SI CMP AL,[SI] JAE LOOP3 XCHG AL,[SI] LOOP3: DEC CX JNZ LOOP2 XOR AH,AH MOV OBUF,AL RET

FMAX ENDP

BTOAD PROC NEAR MOV BX, OFFSET OBUF+5 MOV BYTE PTR [BX],'$' MOV CX,10

LOOP4: MOV DX,0 DIV CX ADD DL,30H DEC BX MOV [BX],DL OR AX,AX JNZ LOOP4

MOV DX,BX MOV AH,09H INT 21H RET

BTOAD ENDP CODE ENDS END START 2、实验习题: 计算1+2+3+……+N.要求N由键盘输入;给出必要的提示信息(由宏调用实现);累加功能由子程序调用实现;二进制数(累加和)转换为十进制数并显示子程序调用实现. (1) 实验源代码: STACK SEGMENT stack DB 100 DUP(?) STACK ENDS DATA SEGMENT INF1 DB \ IBUF DB 7,0,6 DUP(?) OBUF DB 6 DUP(?) INF2 DB 0AH,0DH,\DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX DSTRING MACRO STRING PUSH DX PUSH AX MOV DX,OFFSET STRING MOV AH,09H INT 21H POP AX POP DX ENDM DSTRING INF1 CALL DTOB CALL ADDN CALL BTOAD MOV AH,4CH INT 21H

DTOB PROC NEAR PUSH CX

搜索更多关于: 宏指令及子程序设计实验() 的文档
宏指令及子程序设计实验().doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c7i7go8oa1u37lyd0yekt_1.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top