汇编 请问这个代码错在哪里了??急急急
codesegmentmainpro ,1;从键盘输入一个字符的DOS调用INT21HCMPAL,‘a’;输入字符<‘a’吗?JBSTOPCMPAL,‘z’;输入字符>‘z’吗?JASTOPSUBAL,20H;转换为大写字母,用ANDAL,11011111B也可MOVDL,AL;显示一个字符的DOS调用MOVAH,2INT21HJMP 请问我这个哪里错了??为什么通过编译??请帮我写出正确的答案(代码),谢谢!!本人新手,还望多多指教!!!还有,请问汇编中中断调用(DOS)如movah,01hint21h请问从DOS下输入的数存在存在哪里??
几个错误: (1)堆栈处理有问题:有push ax,但是在结束前没有:pop ax,对堆栈的操作应该成对,否则堆栈会出现异常,你的ret指令就找不到返回地址了 (2)你使用的宏汇编,使用dos系统进行编译,需要在结束时调用dos的exit功能(具体功能号好久没有用过忘了,你去查查) (3)dos中断已经很久不用了,如果你确实想学习汇编,建议你直接学习windows的汇编; (4)mov ah,01h int 21h,这时一个dos的从键盘读一个字符的调用,他将输入字符放在al寄存器中返回;因此它一次只能读一个字符,就像你的02h调用一次只能输出一个字符一样 看来你是个电脑的爱好者,我建议你学习AT&T汇编,这是linux和unix的标准,对你将来的就业适应有很大的好处。
答:想换大写? 按电脑左边的CAPS LOCK就OK 拉详情>>
问:快过年了,盗号的很多大家小心,昨天一女的加我,外地的我给删除了,晚上就显示异地登...
答:如果加一下就能被盗号了也太可怕了啊。详情>>
答:有可能你的系统不是正版的,是正版的才可以下载更新.详情>>