判断ax中的数,如果是0,给bx赋1,否则给bx赋2
本帖最后由 atm456320 于 2012-12-26 19:09 编辑只能用mov add inc loop push pop这些指令 其它指令不能用。
把ax的值给cx,如果不为0则循环,否则...你知道怎么办吧~~ 想了一晚上,,无解啊……这是哪里的题目还是?有什么提示嘛? 张国祥 发表于 2012-12-26 03:04 static/image/common/back.gif
想了一晚上,,无解啊……这是哪里的题目还是?有什么提示嘛?
已经解决了~~答案在下面 本帖最后由 atm456320 于 2012-12-26 19:12 编辑
;程序1:
assume cs:code
code segment
start:
mov ax,23
inc ax
mov cx,ax
mov bx,1
loop s
mov ax,4c00h
int 21h
s: mov bx,2
mov ax,4c00h
int 21h
code ends
end start
;程序2:
assume cs:code
code segment
start:
mov ax,0
inc ax
mov cx,ax
loop s
mov bx,1
loop s1
s: mov bx,2
s1: mov ax,4c00h
int 21h
code ends
end start
程序1用到了两个程序返回点程序2就相当于程序1,是学长点拨的~~
先让CX加1,如果ax为0的话,就可以让loop判断一次 不会陷入cx-1之后的一个类似溢出的情况,然后用loop跳转。
huise865 发表于 2012-12-25 19:04 static/image/common/back.gif
把ax的值给cx,如果不为0则循环,否则...你知道怎么办吧~~
这个开始的时候想到了,但是关键就是判断cx的情况。。如果CX一开始为0,loop一次之后,cx变成了FFFF的情况,唯有让cx先加一次,然后loop让cx减一次1,就可以实现跳转了。 atm456320 发表于 2012-12-26 19:14 static/image/common/back.gif
这个开始的时候想到了,但是关键就是判断cx的情况。。如果CX一开始为0,loop一次之后,cx变成了FFFF的情况 ...
谢谢指导,在凌晨大脑短路了- -
页:
[1]