都来看一下 我这个程序到底哪有问题
基本上是抄书的,一开始没问题,后面改了一下,然后又改了回来,然后就报错,然后我就不解了(非法使用cs寄存器,必须是索引或基数寄存器)
assume cs:codesg
codesg segment
start: mov ax,0ffffh
mov cs,ax ;illegal use of cs register
mov ax,6
mov cx,3
s:add dx,ds: ;must be index or base register
loop s
mov ax,4c00h
int 21h
codesg ends
end start
我记得cs是不能在外面写代码编译连接改变的,只能在debug内部。还有你的ds都没给他初始化就进行运算了 丶忘却的年少o 发表于 2017-8-18 19:38
我记得cs是不能在外面写代码编译连接改变的,只能在debug内部。还有你的ds都没给他初始化就进行运算了
cs不能通过外部编译连接改变?jmp也不行?
ds初始化了也是同样的结果assume cs:codesg
codesg segment
start: mov ax,0ffffh
mov ds,ax
mov ax,6
mov cx,3
s:add dx,ds: ;must be index or base register
loop s
mov ax,4c00h
int 21h
codesg ends
end start 本帖最后由 丶忘却的年少o 于 2017-8-18 21:54 编辑
挥世及至吾 发表于 2017-8-18 21:16
cs不能通过外部编译连接改变?jmp也不行?
ds初始化了也是同样的结果
第8行的ds:改成ds:,课本第五章 5.1 add dx,ds:
这两个内容可以相加吗? ax不能作为间接索引寄存器,只能用bx,后面会学到用di、si索引 thunder 发表于 2017-9-18 22:42
add dx,ds:
这两个内容可以相加吗?
内容是可以相加的,因为dx指明了是字单元,但是用ax当作间接索引是错误的
页:
[1]