- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
汇编实验-查表操作剖析
汇编实验实验二、查表操作。查找0—9相应的平方原理:先存入了一些数据,让BX指向这些数据的首地址,然后根据AL(中的序号)查表转换指令,表的首地址置于BX中,AL中存放查找对象在表中的下标,所查找到的类容存放在AL中。下面有2个版本,一个是存放的十六进制,一个是存放的十进制。运行结果如下:版本一:(十六进制版,应运用的移位法,所以存放的是十六进制)DATAS SEGMENTTABLE DB 0H,1H,4H,9H,16H,25H,36H,49H,64H,81HINPUT DB 0DH,0AH,8 DUP(20H),Please press the Enter key to exit!Or Input a nummble(0~9):,0DH,0AH,$ ;0D为回车符,0A为换行符,20H 为空格符,这样使用,可使字符显示在一行的中间位置OUTERROR DB 0DH,0AH,8 DUP(20H),ERROR!$;0DH为回车键OVER DB 0DH,0AH,8 DUP(20H),THANKS,0DH,0AH,$ ANS DB 0AH,RESULT=$RESULT DB ? ;存放结果DATAS ENDSS SEGMENT STACK ;设置堆栈段,避免Link时的警告S ENDSCODES SEGMENT ;代码段 ASSUME CS:CODES,DS:DATAS,SS:SSTART: MOV AX,DATAS MOV DS,AX LEA DX,INPUT ;输出提示信息, MOV AH,9 ;9号功能是在屏幕上显示多于一个的字符串,但必须要以$作为结束标志. INT 21H ; MOV AH,1 ;从键盘输入一个字符 INT 21H CMP AL,0DH ;判断是否为回车键,若为则退出 JZ EXIT CMP AL,0 JB ERROR ;和数值0的ASCII码比较大小,若小于(JB),则转到ERROR处 CMP AL,9 JA ERROR ;和数值9的ASCII码比较大小,若大于(JA),则转到ERROR处 SUB AL,30H ;由ASCII码转换成数值,或者用(AND AL,0FH),以便后面查表使用 LEA BX,TABLE ;置数据指针,表的首地址置于BX中 XLAT ;查表转换指令,表的首地址置于BX中,AL中存放查找对象在表中的下标,所查找到的类容存放在AL中 MOV RESULT,AL ;保留一个结果的副本 LEA DX,ANS MOV AH,9 INT 21H ;输出回车符 MOV BL,RESULT MOV CL,4 ;位移的位数 SHR BL,CL ;逻辑右移4位,即将高半字节移到低半字节 OR BL,30H ;将十位上的数变成ASCII码 CMP BL,0 JZ NEXT1 ;若为0,只输出低位 JNZ NEXT2 ;若不为0,输出高位和低位 NEXT1:MOV BL,RESULT ;输出低位 AND BL,0FH ;与相与,只保留低半字节的类容 OR BL,30H ;个位上的数变成ASCII码 MOV AH,2H MOV DL,BL ;将要显示字符的ASCII码存到DL寄存器中,输出个位数 INT 21H JMP START NEXT2:MOV AH,2H ;输出高位 MOV DL,BL ;将要显示字符的ASCII码存到DL寄存器中,输出十位数 INT 21H MOV BL,RESULT ;输出低位 AND BL,0FH ;与相与,只保留低半字节的类容 OR BL,30H ;个位上的数变成ASCII码 MOV AH,2H MOV DL,BL ;将要显示字符的ASCII码存到DL寄存器中,输出个位数 INT 21H JMP STARTERROR:LEA DX,OUTERROR MOV AH,9 INT 21H
文档评论(0)