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

2026/1/27 12:36:55

宏指令及子程序设计实验

一、实验目的

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文档下载到电脑
搜索更多关于: 宏指令及子程序设计实验() 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219