当前位置:编程学习 > 汇编语言 >>

如何用汇编语言在屏幕上显示一个菱形

答案:我做的是中间空心的菱形程序 ;这是自动生成的代码模板 STACKS SEGMENT STACK ;堆栈段 DW 128 DUP(?) ;注意这里只有128个字节 STACKS ENDS DATAS SEGMENT ;数据段 ;请在这里定义您的数据 DATAS ENDS CODES SEGMENT ;代码段 ASSUME CS:CODES,DS:DATAS START: MOV AX,DATAS ;初始化 MOV DS,AX ;请在这里添加您的代码 MOV AX,3 ;控制菱形的大小 .最小三行, MOV SI,0 ;空心菱形程序 ;空格的大小我们暂时放在si中 ;我采用2个循环一个循环是上部分一个循环是下部分 ;循环之前需要准备一个寄存器作为空格的数量,我们就用bx寄存器.dl寄存器用来作*用它组成菱形 ;di中保存*的输出个数 ;空格的数量是通过中间的大小来确定的 CMP AX,3 JAE OK ;若大于等于3则可以组成菱形否则结束 JMP NEAR PTR OVER OK: MOV CX,AX ;循环次数通过这个确定 MOV BX,CX DEC BX ;空格数确定下来 MOV DI,1 ;*号输出个数确定下来 PUSH CX SHANG: PUSH CX MOV CX,BX ;空格输出个数在bx中传送给cx循环使用 JCXZ TIAOCHU DEC BX ;空格个数-1 HUAKONGGE: MOV DL,' ' ;内不循环用来画画 MOV AH,02H INT 21H LOOP HUAKONGGE TIAOCHU: CMP SI,0 JZ YIGE ;若是输出一个星的情况下就输出一个*执行下一次循环 MOV AH,02H MOV DL,'*' INT 21H ;空格个数就是用Si MOV CX,SI ;输出空格 KONGGE2: MOV DL,' ' MOV AH,02H INT 21H LOOP KONGGE2 YIGE: MOV AH,02H MOV DL,'*' INT 21H ;在这里需要一个回车换行 MOV DL,0DH ;回车 MOV AH,02H INT 21H MOV DL,0AH ;换行 MOV AH,02H INT 21H CMP SI,0 JZ LINGWAI ;若为0则将其+1否则+2 INC SI LINGWAI: INC SI POP CX LOOP SHANG ;上半部分及中间组成循环 ;下半部分菱形 POP CX DEC CX MOV BX,1 SUB SI,4 SHANG2: PUSH CX MOV CX,BX ;空格输出个数在bx中传送给cx循环使用 INC BX ;空格个数+1 HUAKONGGE2: MOV DL,' ' ;内不循环用来画画 MOV AH,02H INT 21H LOOP HUAKONGGE2 TIAOCHU2: CMP SI,0 JZ YIGE2 ;若是输出一个星的情况下就输出一个*执行下一次循环 MOV AH,02H MOV DL,'*' INT 21H ;空格个数就是用Si MOV CX,SI ;输出空格 KONGGE22: MOV DL,' ' MOV AH,02H INT 21H LOOP KONGGE22 YIGE2: MOV AH,02H MOV DL,'*' INT 21H ;在这里需要一个回车换行 MOV DL,0DH ;回车 MOV AH,02H INT 21H MOV DL,0AH ;换行 MOV AH,02H INT 21H CMP SI,1 JZ LINGWAI2 ;若为0则将其+1否则+2 DEC SI LINGWAI2: DEC SI POP CX DEC CX CMP CX,0 JNZ SHANG2 ;上半部分及中间组成循环 MOV AH,07H ;暂停程序 INT 21H OVER: MOV AX,4C00H ;退出程序 INT 21H CODES ENDS END START
其他:;这个汇编程序运行的结果肯定是你想要的,但过程可能是你不想用的。 name 这样使用,是可以试试写IF的时候注意层次,一个IF完成的时候就应该有个end 参考:
http://hi.zhaoxi.net/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/c6c066cb22135d8cc81768ac.html
http://hi.zhaoxi.net/%D7%F6%B6%F8%C2%DB%B5%C0/blog/item/d744f03acb7533e014cecbc9.html

上一个:求汇编语言!!!!!
下一个:汇编语言如何将一个字节与-128~127相对应

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,