如何用汇编语言写出下面的算法?

来源:百度知道 编辑:UC知道 时间:2024/06/01 10:06:31
16位数初值为00000000,然后经过一个循环后编程00000001,再一次循环编程00000011,再一次变成00000111,一次类推,八次循环后变成11111111,这个怎么用汇编写出来啊,谢谢!
具体的怎么编?

低位带进位左移、加一,高位左移并加上低位的进位。

XOR AX,AX ; 赋初值00000000
MOV CX,8 ; 循环次数
LP:
SHL AX,1 ; 左移一位
OR AX,1 ; 末位置1
LOOP LP

mov ax,1
mov cx,? ;?就是你所要转移的次数
1:
shl ax,1
add ax,1
cmp ax,111111h
je 2
jmp 1
2:

mov ax,0 ; ax初值0
mov cx,8 ; 设置循环次数8
L1:stc ; 让CF=1
rcl ax,1 ; 带CF循环左移,让ax=0000000000000001
loop L1 ; 8次循环以后 ax变成FFFFH

用MASM格式写的

mov ax,00000000b
mov ecx,8
L1:
shl ax,1
add ax,00000001b
LOOP L1