027_[BX]和loop指令05 视频代码的改写问题
源代码如下assume cs:xxxx segment
xiaobo: mov ax,0ffffh
mov ds,ax
mov bx,0
mov dx,0
mov cx,12
s: mov al,
mov ah,0
add dx,ax
inc bx
loop s
mov ax,4c00h
int 21h
xx ends
end xiaobo如上bx是从0加到12的
我突然就想到从12减到0然后相加.
顺便也简化下代码
可是问题来了
代码如下assume cs:xx
xx segment
xiaobo: mov ax,0ffffh
mov ds,ax
mov dx,0
mov cx,12
s: mov al,
mov ah,0
add dx,ax
loop s
mov ax,4c00h
int 21h
xx ends
end xiaobo编译时提示第九行代码错误
错误为error a2031:
具体没给出为什么出错
求解 我也是刚学,也才刚过这一章,好像只有 【BX】才可以作为偏移地址CX不可以,,,错了请高手指点 assume cs:xx
xx segment
xiaobo: mov ax,0ffffh
mov ds,ax
mov bx,12
mov dx,0
mov cx,12
s: mov al,
mov ah,0
add dx,ax
sub bx,1
loop s
mov ax,4c00h
int 21h
xx ends
end xiaobo
这样也算减法吧 本帖最后由 Zero_One 于 2012-1-9 12:07 编辑
assume cs:xx
xx segment
xiaobo: mov ax,0ffffh
mov ds,ax
mov bx,12
mov dx,0
mov cx,12
s: mov al,
mov ah,0
add dx,ax
sub bx,1
loop s
mov ax,4c00h
int 21h
xx ends
end xiaobo
Zero_One 发表于 2012-1-9 12:01 static/image/common/back.gif
主要昨天看了一个人的写法assume cs:codesg
codesg segment
start:
mov ax,0
mov cx,100
s:
add ax,cx
loop s
mov ah,4ch
mov al,00h
int 21h
codesg ends
end start所以我就像用CX代替``.
既然CX不能做偏移地址
那估计就不可以了吧 我也看到了,特别是12句和13句,:Q差点绕进去,不过才知道可以这么写 CX一般是作为循环多少次, 没就见过作为偏移地址的。 mov ah,4ch
mov al,00h
ax=4c00h不是一样么- -
页:
[1]