- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
从键盘输入字符串并输出该字符串汇编程序.doc
从键盘输入字符串并输出该字符串(汇编程序) DATAS SEGMENTSTR?? DBplease input a string:$???BUF?? DB 20????? DB ?????? DB 20 DUP (?)CRLF? DB 0AH,0DH,$;此处输入数据段代码?DATAS ENDS
STACKS SEGMENT STACK?????? DB????? 200 DUP(?) ;此处输入堆栈段代码STACKS ENDS
CODES? SEGMENT?????? ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS?????? MOV DS,AX?????? LEA DX,STR?????? MOV AH,9?????? INT 21H?????? MOV AH,10?????? LEA DX,BUF?????? INT 21H?????? LEA DX,CRLF?????? MOV AH,9?????? INT 21H?????? MOV CL,BUF+1?????? LEA SI,BUF+2NEXT:? MOV DL,[SI]?????? MOV AH,2?????? INT 21H?????? INC SI?????? DEC CL?????? JNZ NEXT;此处输入代码段代码??????? MOV AH,4CH?????? INT 21HCODES? ENDS??? END START
??? 以上是从键盘输入字符串并输出该字符串的简单汇编程序,我们老师的要求是将程序中的2号调用改成9号调用,本人还在思考中,有能解决此问题的请回复,谢谢!
??? 如果我了解了该题答案,一定和大家共享。
???
续一:
??? 我们汇编老师的教学是先让我们看程序,写程序,再讲基本指令,基本结构……
??? 学习汇编重要的是掌握CPU结构、程序结构以及熟练的掌握7种指令的运用。
??? 以下是本人整理的对上面程序的部分解释:
??? BUF:键盘缓冲区BUF。
??? DB:定义变量的类型为字节类型。
????DB 20:表示缓冲区能容纳20个字符。
??? DB 200 DUP(?)中的问号:不对分配的存储单元初始化。
??? DS:存放当前数据段的段地址。
??? CS:存放当前代码段的段地址。
????SS:存放当前堆栈段的段地址。
??? MOV:传送指令。
??? AX:存放接收到的数据或发送数据。
??? DX:使用间接寻址时存放端口地址。
??? LEA:取偏移地址。
??? CL:在移位指令和循环移动指令中,存放移位次数或者循环移位次数。
??? SI:在存储器寻址时,作为变址寄存器。在串操作中,作为源串指针。
??? DEC:decrement。
??? INC:increment。
????INT:interruput。
?
续二:
DATAS SEGMENTSTR?? DBplease input a string:$??BUF?? DB 20??????? ;这里的20为指定存放字符的个数(理论上的)????? DB ???????? ;这的?可变,实际存放字符的个数(系统自动计算)????? DB 20 DUP (?)??? ;这里的20是你在数据段开辟的空间???????????CRLF? DB 0AH,0DH,$;回车换行;此处输入数据段代码DATAS ENDSSTACKS SEGMENT STACK?????????? DB????? 200 DUP(?) ;此处输入堆栈段代码STACKS ENDS
CODES? SEGMENT?????? ASSUME CS:CODES,DS:DATAS,SS:STACKSSTART: MOV AX,DATAS?????? MOV DS,AX?????? LEA DX,STR??? ;9号中断前提,给参数DX赋值,指定输出字符串所在的有效地址?????? MOV AH,9?????? INT 21H?????? MOV AH,10??? ;10号中断,接收输入字符串,此时DX为存放字符串的有效地址?????? LEA DX,BUF?????? INT 21H?????? LEA DX,CRLF?????? MOV AH,9?????? INT 21H?????? MOV CL,BUF+1??? ;获取字符串中字符的个数?????? LEA SI,BUF+2??? ;间接寻址NEXT:? MOV DL,[SI]?????? MOV AH,2??????? ;2号中断输出单个字符?????? IN
您可能关注的文档
最近下载
- 智慧燃气工程施工管理方案(3篇).docx VIP
- 翻车机系统检修维护.docx VIP
- 农产品质量安全知识题库.docx VIP
- HGT20592_20635-2009钢制管法兰、垫片和紧固件(法兰选取).pdf VIP
- 帕金森病患者吞咽障碍康复中国专家共识 (2025版)解读PPT课件.pptx VIP
- 环境监测工程师年终工作总结范文(二篇).doc VIP
- 06J204 屋面节能建筑构造.docx VIP
- YB∕T 5241-2014 低膨胀铁镍、铁镍钴合金(可复制版).pdf
- 《网络关键设备安全通用要求gb+40050-2021》详细解读.pdf
- 开店项目如何开一家玩具店.doc VIP
文档评论(0)