汇编语言画像素点中断问题

mengyugan1059 2017-04-25 08:28:25
今天写汇编程序遇到了一个问题
源程序如下:

drawstart MACRO
MOV AX,4F02H;
MOV BX,100H;
INT 10H;
ENDM

drawpixel MACRO x,y
MOV CX,x;
MOV DX,y;
MOV AL,09H;

MOV AH,0CH;
INT 10H;

MOV CX,100;
MOV DX,101;
MOV AL,09H;

MOV AH,0CH;
INT 10H;
ENDM

宏的功能是画两个像素点,坐标分别是(x,y)与(100,101)
宏调用如下:

INCLUDE PICTURE.lib
DATA SEGMENT

DATA ENDS

STACK SEGMENT

STACK ENDS

CODE SEGMENT
ASSUME DS:DATA,CS:CODE,SS:STACK
START:

drawstart;
drawpixel 100,100;

CODE ENDS;
END START
运行结果:失败了


但是修改宏如下,去掉了宏体中第二次画像素点的MOV AH,0CH
MOV CX,100;
MOV DX,101;
MOV AL,09H;
INT 10H;
运行结果:成功

求解为什么去掉了MOV AH,0CH就可以了。
...全文
621 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
zara 2017-04-26
  • 打赏
  • 举报
回复
应该不是这个问题,是程序最后没有结束程序返回dos 的调用程序失控了,这又是个虚拟环境,没有实时地反应。
在最后加上 ]mov ah, 4chint 21h 两指令就能看到有的。
要求在屏幕上出彩色的五环图,主要的问题是对圆法的设计。圆是由点组成的,每一个点的时候就要考虑下一个点的位置,这个就是问题的难点。 基本思路:通过对网上资料和图书馆资料的查询,用汇编语言圆,就必须学习Bresenham圆算法,这是计算机图形基础的方法。该算法包括利用圆的对称性,用八点对称出8个单像素点,通过循环1/8个圆即可组成一个完整的圆。在点时,只要使用BIOS中断调用即可显示有颜色点组成的面。把每个颜色值放入到一个存储单元,每次读取不同数值即可实现5种颜色的显示。完一个圆之后,通过对圆心平移,出其他的圆,组成五环图。 在图形中,初始值是固定的,每个圆的圆心坐标、半径和颜色在程序中都有默认值。为扩展题目的内容,还增加了自定义圆环的属性的功能。对于自定义圆心坐标、半径和圆圈的颜色设计,用汇编语言1号功能输入,进行比较、转存数值等处理,分别改变原定义的圆心坐标、半径、颜色中的初始值。对于自定义圆圈的粗细是改变不同坐标点综合的结果。初始值是“细线”:在8个点时,每个点只调用一次点子程序显示点;“粗线”:在8个点时,每个点在“细线”的基础上,改变横纵坐标,多次调用点程序,出“细线”周围的点,最后达到“粗线”的效果。

21,458

社区成员

发帖
与我相关
我的任务
社区描述
汇编语言(Assembly Language)是任何一种用于电子计算机、微处理器、微控制器或其他可编程器件的低级语言,亦称为符号语言。
社区管理员
  • 汇编语言
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧