loop指令
书上104页的5.3程序可不可以写成下面这个样子,直接用dx不借助其他寄存器
assume cs:code
code segment
mov ax,0ffffh
mov ds,ax
mov dl,
mov dh,0
mov cx,2
s:
add dx,dx
loop s
mov ax,4c00h
int 21h
ends code
end dx = byte ptr * 4 应该是可以的。 jackz007 发表于 2022-3-13 17:56
dx = byte ptr * 4 应该是可以的。
俺没看懂,这本书我只看到了 P105 这个地方,大佬可以再解释一下嘛,嘿嘿嘿…… 小小沐 发表于 2022-3-13 17:59
俺没看懂,这本书我只看到了 P105 这个地方,大佬可以再解释一下嘛,嘿嘿嘿……
mov ax,0ffffh
mov ds,ax ; ds = 0ffffh
mov dl, ; dl = byte ptr ds:,就是把位于内存 ffff:0006 的一个字节赋值到 dl
mov dh,0 ; dh = 0
mov cx,2 ; 准备循环 2 次
s: ; 循环入口
add dx,dx ; dx = dx + dx,也就是 dx = dx * 2
loop s ; 循环 2 次
; 最后 dx = byte ptr ffff: * 4 jackz007 发表于 2022-3-13 18:52
dl = byte ptr ds:这个解释有点高级俺没看懂,汇编代码我懂,但是我执行的时候出错了(执行的代码就是最初我发的那个)
小小沐 发表于 2022-3-13 19:15
dl = byte ptr ds:这个解释有点高级俺没看懂,汇编代码我懂,但是我执行的时候出错了(执行的代 ...
dl = byte ptr ds:
这一句的意思是从内存 ds: 处提取一个字节,然后,赋值给 dl 寄存器。由于数据段寄存器的值是0ffffh,所以,ds: 指的就是 ffff:0006。 jackz007 发表于 2022-3-13 19:40
这一句的意思是从内存 ds: 处提取一个字节,然后,赋值给 dl 寄存器。由于数据段寄存器的 ...
哦哦哦,好哒!这个俺懂了,但是不明白为什么会出错
"Expected: instruction or directive
Byte symbol space free"错误中大概出现了这些词眼,我去查了一些资料,但是没看懂!还是麻烦大神指点一下,哈哈哈哈…… 小小沐 发表于 2022-3-13 20:03
哦哦哦,好哒!这个俺懂了,但是不明白为什么会出错
"Expected: instruction or directive
Byte symbol ...
assume cs:code
code segment
start:mov ax,0ffffh
mov ds,ax
mov dl,
mov dh,0
mov cx,2
s:
add dx,dx
loop s
mov ax,4c00h
int 21h
code ends ; 这一行写错了
end start jackz007 发表于 2022-3-13 21:37
原来如此!我好哈!
太感谢你了!谢谢!{:5_109:}
页:
[1]