请问我这段代码哪里错了呀?
本帖最后由 loop 于 2011-5-19 16:29 编辑以下代码,我用MASM编译完后,总是执行不了。assume cs:code
code segment
start: mov ax,0b800h
mov cs,ax ;当执行这句代码的时候,就出错了,提示"NTVDM遇到一个硬错误。"
mov ax,4c00h
int 21h
code ends
end start 语法上好像没有问题。。。 是的遇到了一个致命的错误, 好象多了一个0 你这样有什么意义呢:dizzy:你想不通编译器也想不通 assume cs:code
code segment
start: mov ax,0b800h ;这里在前面加零是正确的没有错误
mov cs,ax ;我只想说 CS这个段寄存器不能用MOV这个指令来改变值的
mov ax,4c00h
int 21h
code ends
end start 回复 Y.H 的帖子
同意 y.h的说法 楼主应该先想想CS段是干吗用的
code segment
start:
程序运行后直奔start,这时代码已经放入CS段中运行了
你又给它指定一个CS,这让人家情何以堪呀 如果是想改变CS:ip的值的话要用到转移指令,直接mov cs,ax 是不允许的
页:
[1]