第九行,,,不能这么写吗?
题目要求将ffff6H地址的内存单元的值(一个字节),乘3,放到寄存器dx中帮我看看有什么错,,,,,
第九行,,,不能这么写吗?
肯定啊,里面只能存放的是bx,di,si,db,这样的寄存器,以为这几个寄存器都对应了相应的 段寄存器ds,ss
而你里面写的话,编译器不认识al,因为他没有对应的段寄存器 为之疯狂 发表于 2014-4-6 20:14 static/image/common/back.gif
肯定啊,里面只能存放的是bx,di,si,db,这样的寄存器,以为这几个寄存器都对应了相应的 段寄存器ds,ss
...
还是错,,,,,,,,,不知道为什么,,,试了n变了
C语言鱼c 发表于 2014-4-6 20:34 static/image/common/back.gif
还是错,,,,,,,,,不知道为什么,,,试了n变了
mov ax, 啊:sweat: 帮你改好了 楼主好好研究
assume cs:code
code segment
start:
mov ax,0ffffh
mov ds,ax
mov di,0006h
mov bx,ds:
mov bh,00h
mov dx,0h
mov cx,3
s:
add bx,bx
loop s
mov ax,4c00h
int 21h
code ends
end start
其实 ax,bx,cx ,dx【】里面可以直接加你想要的偏移地址 下面是直接的寻址
cs:code
code segment
start:
mov ax,0ffffh
mov ds,ax
mov bx,ds:
mov bh,00h
mov dx,0h
mov cx,3
s:
add bx,bx
loop s
mov ax,4c00h
int 21h
code ends
end start
wiliam 发表于 2014-4-6 21:17 static/image/common/back.gif
帮你改好了 楼主好好研究
assume cs:code
code segment
di是什么?
应该是dl吧 al 和bx之间都不能传输吧 只有ax和bx 书中把ax分为2个部分是因为以前的8位机 搂主可以直接用ax的值传输 因为命令al为06 ah为0后 ax的值和al的值是相等的 我也是第一次学汇编错了提点下 :big京津冀00 C语言鱼c 发表于 2014-4-7 08:29 static/image/common/back.gif
di是什么?
你可以这么 理解bx的小三和 bx的功能一样 我疯狂我成功 发表于 2014-4-7 08:40 static/image/common/back.gif
应该是dl吧
dl是dldi是di:sweat:
页:
[1]