标题:[汇编] 输入字符比较大小
只看楼主
eternuii
Rank: 1
等 级:新手上路
威 望:1
帖 子:27
专家分:0
注 册:2014-10-22
结帖率:83.33%
已结贴  问题点数:18 回复次数:4 
[汇编] 输入字符比较大小
菜鸟求教~
要求用户输入单个字符 (比如+— */&¥ 等等),不是字符串哦。。。怎么读取这个字符额,,,

下面这个思路是不是完全不对?
要用到MOV AH,0AH INT 21H 嘛?

char message1[] = "Input a character: ";
char format [] = "%c";

char character;//假设用户只会输入+—*/中的某一个
_asm{
    lea eax, message1;
    push eax;
    call printf;
    add esp, 4;

    lea eax, character;
    push eax;
    lea eax, format;
    push eax;
    call scanf;
    add esp, 4;

    mov eax, character;
    cmp eax, 2Bh; //比较输入字符的asc码与+对应的asc码的大小
    je label1;
    jne label2;

    ...
    ...
}
return 0;
}
搜索更多相关主题的帖子: 用户 字符串 character 
2014-11-15 16:36
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:7 
用BIOS中断或者DOS中断获得用户的键盘输入,然后再进行判断。

活到老,学到老! http://www. E-mail:hu-jj@
2014-11-16 09:19
wp231957
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:神界
等 级:版主
威 望:422
帖 子:13681
专家分:53296
注 册:2012-10-18
得分:7 
既然是内联汇编 就完全无法用int 21h 来中断

DO IT YOURSELF !
2014-11-17 08:33
eternuii
Rank: 1
等 级:新手上路
威 望:1
帖 子:27
专家分:0
注 册:2014-10-22
得分:0 
回复 3 楼 wp231957
意思是内联汇编不能用与int相关的任何指令吗
2014-11-17 13:42
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:396
帖 子:11713
专家分:43267
注 册:2006-5-13
得分:0 
以下是引用eternuii在2014-11-17 13:42:49的发言:

意思是内联汇编不能用与int相关的任何指令吗
很多中断被操作系统屏蔽了的。

活到老,学到老! http://www. E-mail:hu-jj@
2014-11-17 15:54



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-438624-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.210385 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved