一个大小写转换代码的问题
代码如下:assume cs:code,ds:data
data segment
db'fuck'
db 'FUCK'
data ends
code segment
start:
mov ax,data
mov ds,ax
mov bx,0
mov cx,4
a: and ,11011111b
inc bx
loop a
mov ax,4c00h
int 21h
code ends
end start
为什么代码第十五行:a: and ,11011111b,不能这样写。
而应该写 mov al,
and al,11011111b
mov ,al and不能直接操作,所以先要存到通用寄存器里,然后再and。 本帖最后由 jackz007 于 2022-4-14 15:54 编辑
可以的,这一句
a: and ,11011111b
你得这样改
a: and byte ptr,11011111b
其实就是告诉编译器,被操作的对象是一个 byte 还是 word,因为二者生成的机器指令是有区别的,所以,你必须显式地进行声明。
页:
[1]