初学汇编 遇到的问题
C++ 代码:int main()
{
int i,j,k,a;
cin>>a;
if(a%2==0)
a+=1;
for(i=a;i>0;i-=2)
{
for(j=0;j<a-i;j++)
cout<<' ';
for(k=i;k>0;k--)
cout<<'*';
}
return 0;
}
此代码 所对应的 汇编怎么写啊
弄不懂 数据的存取
num db 3,?,?,?
cnt db ?
data ends
code segment
main proc far
assume cs:code,ds:data
start:
mov ax,data
mov ds,ax
mov dx,offset num
mov ah,0ah
int 21h
mov al,num+1
cmp al,1
jz flag1
mov al,num+2
sub al,30h
mov bl,10
mul bl
mov bl,num+3
sub bl,30h
add al,bl
jmp flag2
flag1:
mov al,num+2
sub al,30h
flag2:
mov bl,al
shr bl,1
jb flag3
inc al
flag3:
mov cnt,al
mov cl,al
mov ch,0
inc cl
loop1:
dec cx
push cx
sub al,cl
jz flag4
mov cl,al
loop2:
mov dl,' '
mov ah,2
int 21h
loop loop2
flag4:
pop cx
push cx
loop3:
mov dl,'*'
mov ah,2
int 21h
loop loop3
mov al,cnt
pop cx
loop loop1
mov ax,4c00h
int 21h
main endp
code ends
end start[/code] 谢谢了啊
在 loop loop3 和 mov al,cnt 中间添加以下代码:
mov dl,0dh
mov ah,2
int 21h
mov dl,0ah
mov ah,2
int 21h
是不是每打完一排执行完两个内循环后 换行呀 加在loop2和flag4之间
[[it] 本帖最后由 zhulei1978 于 2008-6-3 16:42 编辑 [/it]]
页:
[1]
