MASM汇编,求指导
2011-11-24 12:38
169 查看
下面这个使用MASM编写的一个程序,要求是在屏幕中央画一个逐渐增大的实心圆,出了点错,求各位大虾帮把手,叩拜!!!
SCREEN MACRO
MOV AX,12H
INT 10H
MOV AX,0BH
MOV BX,0
INT 10H
ENDM
;------------------------------------------
COMPUTE MACRO
MOV AX,[SI]
MUL RR
DIV KK
MOV Y_COORD,AX
MOV AX,[DI]
MUL RR
DIV KK
MOV X_COORD,AX
ENDM
;------------------------------------------
L MACRO
MOV AX,X_COORD
MOV CX,Y_COORD
MOV X_COORD1,AX
MOV Y_COORD1,CX
ADD Y_COORD1,OY
ADD X_COORD1,OX
MOV AH,0CH
MOV AL,COLOR
MOV BH,0
MOV CX,X_COORD1
MOV DX,Y_COORD1
INT 10H
ENDM
WRITE MACRO
L
NEG X_COORD
L
NEG Y_COORD
L
NEG X_COORD
L
ENDM
;--------------------------------------------
DATA SEGMENT
SINE DW 00,02,03,05,07,09,11,12,14,16
DW 17,19,21,23,24,26,28,29,31,33
DW 34,36,37,39,41,42,44,45,47,49
DW 50,52,53,54,56,57,59,60,62,63
DW 64,66,67,68,69,71,72,73,74,75
DW 77,78,79,80,81,82,83,84,85,86
DW 87,87,88,89,90,91,91,92,93,93
DW 94,95,95,96,96,97,97,97,98,98
DW 99,99,99,99,99,100,100,100,100
DW 100,100
Y_COORD DW ?
X_COORD DW ?
Y_COORD1 DW ?
X_COORD1 DW ?
OY EQU 240
OX EQU 320
RR DW 0
COLOR DB 19
KK DW 100
XX DB ?
COUNT DB 90
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
BEG:
MOV AX,DATA
MOV DS,AX
SCREEN
MOV SI,OFFSET SINE+89*2
MOV DI,OFFSET SINE
AGA1: INC RR
mov count,90
AGA:
COMPUTE
WRITE
SUB SI,2
ADD DI,2
DEC COUNT
JZ L8
JMP AGA
L8: CMP RR,199
Ja wait_in
JMP AGA1
WAIT_IN:
MOV AH,1
INT 21H
MOV AX,2
INT 10H
MOV AH,4CH
INT 21H
CODE ENDS
END BEG
SCREEN MACRO
MOV AX,12H
INT 10H
MOV AX,0BH
MOV BX,0
INT 10H
ENDM
;------------------------------------------
COMPUTE MACRO
MOV AX,[SI]
MUL RR
DIV KK
MOV Y_COORD,AX
MOV AX,[DI]
MUL RR
DIV KK
MOV X_COORD,AX
ENDM
;------------------------------------------
L MACRO
MOV AX,X_COORD
MOV CX,Y_COORD
MOV X_COORD1,AX
MOV Y_COORD1,CX
ADD Y_COORD1,OY
ADD X_COORD1,OX
MOV AH,0CH
MOV AL,COLOR
MOV BH,0
MOV CX,X_COORD1
MOV DX,Y_COORD1
INT 10H
ENDM
WRITE MACRO
L
NEG X_COORD
L
NEG Y_COORD
L
NEG X_COORD
L
ENDM
;--------------------------------------------
DATA SEGMENT
SINE DW 00,02,03,05,07,09,11,12,14,16
DW 17,19,21,23,24,26,28,29,31,33
DW 34,36,37,39,41,42,44,45,47,49
DW 50,52,53,54,56,57,59,60,62,63
DW 64,66,67,68,69,71,72,73,74,75
DW 77,78,79,80,81,82,83,84,85,86
DW 87,87,88,89,90,91,91,92,93,93
DW 94,95,95,96,96,97,97,97,98,98
DW 99,99,99,99,99,100,100,100,100
DW 100,100
Y_COORD DW ?
X_COORD DW ?
Y_COORD1 DW ?
X_COORD1 DW ?
OY EQU 240
OX EQU 320
RR DW 0
COLOR DB 19
KK DW 100
XX DB ?
COUNT DB 90
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,DS:DATA
BEG:
MOV AX,DATA
MOV DS,AX
SCREEN
MOV SI,OFFSET SINE+89*2
MOV DI,OFFSET SINE
AGA1: INC RR
mov count,90
AGA:
COMPUTE
WRITE
SUB SI,2
ADD DI,2
DEC COUNT
JZ L8
JMP AGA
L8: CMP RR,199
Ja wait_in
JMP AGA1
WAIT_IN:
MOV AH,1
INT 21H
MOV AX,2
INT 10H
MOV AH,4CH
INT 21H
CODE ENDS
END BEG
相关文章推荐
- [Intel汇编-MASM]标志寄存器
- (英文版)使用Visual Studio 2015 编写 MASM 汇编程序!
- MASM,NASM和AT&T汇编格式备注
- LLVM汇编语言指导手册之标识符简介
- Win7 VS2015 x64 MASM汇编语言编写DLL文件
- 汇编(六)——汇编语言程序格式及MASM
- MASM汇编语言笔记(三)数据传送和算术运算
- 8086汇编语言自学经验分享 Masm for windows 2012.5调试经验
- 构建汇编编程环境(MASM32V10)
- MASM的反反汇编技术
- [Intel汇编-MASM]数据定义与分段程序
- [Intel汇编-MASM]内中断
- 如何在windows下使用masm和link对汇编文件进行编译
- 基于MASM6.15的汇编集成开发环境
- MASM 16位汇编程序几种典型的格式
- 汇编debug与masm命令
- [Intel汇编-MASM]与或以及乘除
- 使用Visual Studio 2013 调试 MASM 汇编程序!
- 宏汇编MASM系统
- 汇编语言上机指导及例示[转]