实验报告子程序设计实验Word文件下载.docx

上传人:b****0 文档编号:13335218 上传时间:2022-10-09 格式:DOCX 页数:13 大小:181.92KB
下载 相关 举报
实验报告子程序设计实验Word文件下载.docx_第1页
第1页 / 共13页
实验报告子程序设计实验Word文件下载.docx_第2页
第2页 / 共13页
实验报告子程序设计实验Word文件下载.docx_第3页
第3页 / 共13页
实验报告子程序设计实验Word文件下载.docx_第4页
第4页 / 共13页
实验报告子程序设计实验Word文件下载.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

实验报告子程序设计实验Word文件下载.docx

《实验报告子程序设计实验Word文件下载.docx》由会员分享,可在线阅读,更多相关《实验报告子程序设计实验Word文件下载.docx(13页珍藏版)》请在冰豆网上搜索。

实验报告子程序设计实验Word文件下载.docx

LEASI,BUF

LOOP1:

;

调用子程序语句

callHEXAC

callDISP

DECCAN

JNZLOOP1

EXIT:

MOVAH,4CH

INT21H

MAINENDP

HEXACPROCNEAR;

二进制转换成十六进制子程序

MOVBL,[SI]

INCSI

RET

HEXACENDP

DISPPROCNEAR;

显示子程序

MOVCL,4

MOVCH,2

MOVE:

;

移位语句

ROLBL,CL

MOVDL,BL

ANDDL,0FH

ADDDL,30H

CMPDL,'

9'

JBEPRINT

ADDDL,07H

PRINT:

MOVAH,02H;

显示语句

DECCH

JNZMOVE

MOVDL,'

'

MOVAH,02H

DISPENDP

CODESENDS

ENDSTART

2.编写一个主程序,从键盘接收若干个字符,然后用远调用的方法,调用子程序统计字符串中字符’b’的个数.子程序的参数是字符串的首地址TABLE,字符串长度N及字符”b”.子程序返回字符"b”的个数.参数传送采用堆栈实现.主程序在子程序返回后,显示字符”b”及其个数(设为一位十六进制数)。

DATASEGMENT

STR1DB0ah,0dh,'

PLEASEINPUTYOURSTRING:

$'

STR2DB0ah,0dh,'

THENUMBEROFbis:

TABLEDB50,?

50DUP(?

),'

DATAENDS

CODESEGMENT

CODE,DS:

DATA

MOVAX,DATA

LEADX,STR1

MOVAH,9

LEADX,TABLE

MOVAH,0AH

LEASI,TABLE

MOVCL,[SI+1]

MOVCH,0

INCSI

MOVAL,'

b'

MOVAH,0

PUSHSI

PUSHCX

PUSHAX

CALLFARPTRCHECK

POPAX

MOVCL,AL

LEADX,STR2

MOVDL,CL

ANDDL,0FH

CMPDL,9

JBECAN

ADDDL,7

CAN:

ADDDL,30H

MOVAH,2

INT21H

CODEENDS

SCODESEGMENT

SCODE

CHECKPROCFAR

PUSHBP

MOVBP,SP

MOVSI,[BP+10]

MOVCX,[BP+8]

MOVAX,[BP+6]

XORAH,AH

AGAIN:

CMPAL,[SI]

JNECAN1

INCAH

CAN1:

LOOPAGAIN

MOVAL,AH

MOV[BP+10],AX

POPBP

RET4

CHECKENDP

SCODEENDS

3.请编写一个程序来实现简单的程序菜单显示。

(采用多模块程序设计方法)

显示一个菜单要求用户从下表中选择:

(1)HEXACGAME      (对应-->

程序1)

(2)CHARSTATISTICSPROGRAM    (对应-->

程序2)

(3)PRESS“ESC”TOQUIT

用户作出选择1~3时,显示输出要执行操作的名字,如“Yourselectionis1,theprogramwillexecuteHEXACNUMBERGAME!

”然后转向相应的程序去执行,执行结束前进行退出的判断,显示一个提示信息“willyoucontinueprogramreally?

(Y:

N)”要求用户从键盘键入字符,若是“Y”键,则继续程序的执行,若是“N”键,则返回到菜单。

若用户选择3,要求程序显示提示信息“PleasepressESCkeytoexit!

”,并能按要求正确退出。

OPTDWYI

DWER

menuDB0DH,0AH,'

THEMENU:

'

;

显示菜单

DB0DH,0AH,'

(1)HEXACGAME'

对应-->

程序1

(2)CHARSTATISTICSPROGRAM'

;

程序2

(3)PRESS"

ESC"

TOQUIT$'

BUFDB00000111B,00100001B,00100010B,00000011B,00000101B,10000010B,10010011B,00100100B,11100010B,01010010B

定义常量CAN

str1DB0DH,0AH,'

Yourselectionis1,theprogramwillexecuteHEXACGAME!

str2DB0dh,0ah,'

Yourselectionis2,theprogramwillexecuteCHARSTATISTICSPROGRAM!

str3DB0DH,0AH,'

willyoucontinueprogramreally?

N)$'

str4DB0DH,0AH,'

PleasepressESCkeytoexit!

char1db0ah,0dh,'

char2db0ah,0dh,'

MAINPROCFAR

XORDI,DI

subbx,bx

xorsi,si

LEADX,menu;

显示主菜单

movdl,0dh;

显示回车

movah,2

int21h

MOVDL,0AH;

显示换行

MOVAH,2

MOVAH,1;

输入选项

CMPAL,'

1'

JEYI

2'

JEER

3'

JEQUIT

YI:

MOVDI,0

leadx,str1

movah,9

int21h

CALLHEXAC

JMPCONTINUE

ER:

MOVDI,02H

leadx,str2

LEADX,char1

MOVAH,0AH;

输入字符串

MOVCH,0;

CX中为字符串长度

INCSI;

SI指向串首址TABLE

MOVAH,0;

AX中为待查字符

PUSHAX;

参数送堆栈

CALLCHECK

POPAX;

统计个数在AL中

LEADX,char2;

显示结果

JBECAN3

CAN3:

INT21H;

显示统计个数

QUIT:

LEADX,str4;

退出的子程序

MOVAH,1

CMPAL,1BH;

按ESC退出

JEEXIT

CONTINUE:

LEADX,str3;

用户是否继续执行当前程序

Y'

按y继续,按n退出,不需区分大小写

JEYES

y'

N'

JESTART

n'

YES:

JMPopt[DI];

继续运行当前子程序

MOVAH,4CH;

退出

HEXACCODESSEGMENT

HEXACCODES

HEXACPROCFAR;

HEXACCODESENDS

DISPCODESSEGMENT

DISPCODES

DISPPROCFAR;

JNZM

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 国外设计风格

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1