全球旧事资料 分类
的运行结果为:
2
f⑧直接在代码区添加代码,如在指令movsi00000后添加指令movax100程序结果
2)汇编语言程序设计实验内容(1)从键盘输入任意字符串后,存入自定义存储单元,判断处理后将小写字母转换为大写字母(其他字符不变)并按原顺序将这些字符在屏幕上显示出来。①主要算法:dispproc
earxorcxcx;给CX中的数据进行清零movcli
put1;将输入的字符数付给cl,循环次数movsi2;i
put[2]开始为实际输入的ASCII码agai
movdli
putsi
3
fcmpdl61h;判断是否为小写字母jb
extcmpdl7ahja
extsubdl20h;将小写字母转换为大写字母
extmovah02h;显示字符i
t21hi
csi;SI指向下一个字符loopagai
retdispe
dp②调试程序:使用单步运行的方法,输入字符串“123abc”,程序运行到调用子程序,单步运行指令movcl0001后,发现此时CX中的数值变为6,符合我刚才输入的字符总数。程序第一次执行指令cmpdl61可以发现CF1此时程序跳转到显示字符程序段,符合我刚才输入的第一个字符1的情况。当CX0003时,此时程序判断输入的字符a是否为小写字母,单步运行指令subdl,20h后,小写字母a被转换为A,程序运行结果正确。当子程序运行结束之后,回到主程序,当运行结果提示“Doyouwa
ttoco
ti
uey
”此时如输入y,重复程序操作,如输入
,程序结束。最终程序运行结果如下图所示:
(2)从键盘输入在065535之间的十进制数,将其转换为16进制数并在屏幕中显示出来,要求判断输入字符串是否为在065535之间的十进制数。①主要算法:cha
geproc
earclcxoraxaxxorbxbx
4
fxordxdxmovcli
put1movsi2agai
movbli
putsicmpbl30hjberror1cmpbl39hjaerror1subbl30hdecclcmpcl0jzovermovax1pushcxloop2multe
looploop2popcxmulbxaddoutputaxjcerrori
csijmpagai
overaddoutputbxj
cover1error1movright0over1retcha
gee
dp②调试程序:使用单步运行的方法,输入字符串“123”,当程序运行到调用运行数值转换子程序,单步运行指令movbli
putsi在调试程序段显示为movblsi0001。这里和上个字符串实验运行指令movdli
putsi在调试程序段显示为何不同?经检查发现,在本程序的数据段中,i
put的值为0001单步运行指令movcl0002发现CX中的数值变为3,符合输入字符串的个数。程序第一次运行指令cmpbl30h开始为我输入的第一个字符是不是09,判断好之后,运行指令subbl,30h。将ASCII码转换为数字。程序将字符串都转换为数字之后,再将其转换为十六进制数并将其输出。当我输入的字符串不是065535中的数字时,此时程序运行结果会提r
好听全球资料 返回顶部