2013-02-14 60 views
0

有人可以在程序集中定义关键字and的确切用途吗?我在这里提供了一个代码,有人可以解释我在这段代码中做了什么and?顺便说一下,and位于begin下的某个位置,仅供您轻松找到它。'and'in assembly的用途

code segment 
assume cs:code;ds:code 
org 100h 

begin: 

mov ah, 09 
mov dx, offset msg1 
int 21h 

mov ah,01h ;ask user 
int 21h 
and al,01h 
jz EVENn 
mov ah, 09 ;display string 
mov dx, offset oddmsg 
int 21h 
jmp ENDd 

EVENn: 

mov ah, 09 ;display string 
mov dx, offset evenmsg 
int 21h 

ENDd: 
int 20h 

msg1:db 'enter a number: $' 
evenmsg:db 0ah,0dh, 'EVEN $' 
oddmsg:db 0ah,0dh, 'ODD$' 

code ends 
end begin 

回答

1

and操作者做逻辑和操作。

在这种情况下,它用于掩盖值中的一个位。例如,在您获得al6Dh(标准输入读取字符m),操作只留下最显著位:

6Dh 01101101 
01h 00000001 
--------------- and 
    00000001 

一个连字符代码给出结果00h,和奇数字符代码给出结果01h

+0

好吧我理解除了6dh和“从STDIN读取的字符”之外的所有内容。我希望你能为我简化工作,因为我只是刚刚装配。谢谢! – 2013-02-14 13:57:54

+0

@DwayneRadar:'int 21h'方法'01h'用于从STDIN中读取一个字符,并且字符代码在'al'中返回。 – Guffa 2013-02-14 14:07:27

+0

STDIN究竟是什么? – 2013-02-14 23:31:15