qq646000130 发表于 2011-5-7 18:33:36

请问我这段代码哪里错了呀?

本帖最后由 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

风扫地 发表于 2011-5-7 19:45:39

语法上好像没有问题。。。

moshushi 发表于 2011-5-7 21:13:52

是的遇到了一个致命的错误,

moshushi 发表于 2011-5-7 21:21:10

好象多了一个0

尐汇 发表于 2011-5-7 21:42:18

你这样有什么意义呢:dizzy:你想不通编译器也想不通

Y.H 发表于 2011-5-8 01:27:09

assume cs:code
code segment
start: mov ax,0b800h ;这里在前面加零是正确的没有错误
          mov cs,ax      ;我只想说 CS这个段寄存器不能用MOV这个指令来改变值的      
mov ax,4c00h
int 21h
code ends
end start

sunhopp 发表于 2011-5-16 22:33:21

回复 Y.H 的帖子

同意 y.h的说法

winddyj 发表于 2011-5-17 16:46:26

楼主应该先想想CS段是干吗用的
code segment
start:
程序运行后直奔start,这时代码已经放入CS段中运行了
你又给它指定一个CS,这让人家情何以堪呀

超越自我 发表于 2011-5-17 16:58:06

如果是想改变CS:ip的值的话要用到转移指令,直接mov cs,ax 是不允许的
页: [1]
查看完整版本: 请问我这段代码哪里错了呀?