⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 微机原理课程设计_钟表显示.txt

📁 这是个微机原理课程设计_钟表显示_汇编课程设计的源码,水平有限,不足之处请指正.
💻 TXT
📖 第 1 页 / 共 2 页
字号:
MOV       s,0
RET
sjx           ENDP

liney  PROC NEAR
PUSH      x1
PUSH      x2
PUSH      y1
PUSH      y2
pusha
CALL      xymaxmin
MOV       AX,y2
MOV       BX,y1
CALL      subab
MOV       y2y1,AX
MOV       SI,0
CMP       SI,AX
JE        heng
JMP       lop1
heng:         JMP       hengxian
lop1:         MOV AX,x2
MOV BX,x1
CALL subab
MOV       x2x1,AX
MOV       AX,ymin
MOV       y,AX

line0y: SUB   AX,ymin
MOV   DX,0
MOV       CX,x2x1
MUL       CX
MOV       CX,y2y1
DIV       CX
MOV       DX,0
CMP       DL,s
JE        zhengy
MOV       CX,AX
MOV       AX,yminx
SUB       AX,CX
JMP       kky
zhengy:       ADD       AX,yminx
kky:         MOV       x,AX

CALL      DIan
INC       y
MOV       AX,y
CMP       AX,ymax
JBE       line0y
JMP       quity
hengxian:     MOV       AX,ymin
MOV       y,AX
MOV       AX,xmin
MOV       x,AX
lopy:         CALL      DIan
INC       x
MOV       AX,xmax
CMP       AX,x
JAE       lopy

quity:       MOV       s,0
POPa
POP      y2
POP      y1
POP      x2
POP      x1
RET
liney         ENDP

 

 


;***************************linex***y=(y2-y1)*(x-x1)/(x2-x1)+y1
;****in (x1,y1),(x2,y2)******************x++
sjxx  PROC NEAR
pusha
PUSH      x1
PUSH      x2
PUSH      x3
PUSH      y1
PUSH      y2
PUSH      y3

CALL      xymaxmin
MOV       AX,xmin
MOV       sjx_xmin,AX
MOV       AX,ymin
MOV       sjx_ymin,AX
MOV       AX,xmax
MOV       sjx_xmax,AX
MOV       AX,ymax
MOV       sjx_ymax,AX
MOV       AX,xminy
MOV       sjx_xminy,AX


MOV AX,y2
MOV BX,y1
CALL subab
MOV       sjx_y2y1,AX
MOV AX,x2
MOV BX,x1
CALL subab
MOV       DL,s
MOV       s2,DL
MOV       s,0
MOV       SI,0
CMP       SI,AX
JE        sjx_zhixian
JMP       sjx_lopx
sjx_zhixian:
MOV       x1,AX
MOV       AX,x3
MOV       x2,AX
MOV       AX,y3
MOV       y2,AX
JMP       sjx_zhixianxs
sjx_lopx:     MOV       sjx_x2x1,AX
MOV       AX,x3
MOV       x2,AX
MOV       AX,y3
MOV       y2,AX
MOV       AX,sjx_xmin
MOV       x1,AX

sjx_line0x:   SUB       AX,sjx_xmin
MOV       DX,0                         ;***y=(y2-y1)*(x-x1)/(x2-x1)+y1
MOV       CX,sjx_y2y1
MUL       CX
MOV       CX,sjx_x2x1
DIV       CX
MOV       DX,0
CMP       DL,s2
JE        sjx_zhengx
MOV       CX,AX
MOV       AX,sjx_xminy
SUB       AX,CX
JMP       sjx_kk2
sjx_zhengx:
ADD       AX,sjx_xminy
sjx_kk2:
MOV       y1,AX
CALL      linex
CALL      liney
INC       x1
MOV       AX,x1
CMP       AX,sjx_xmax
JBE       sjx_line0x
JMP       sjx_quit12

sjx_zhixianxs: MOV       AX,sjx_xmin
MOV       x1,AX
MOV       AX,sjx_ymin
MOV       y1,AX
sjx_lopxx:
CALL      linex
CALL      liney
INC       y1
MOV       AX,sjx_ymax
CMP       AX,y1
JAE      sjx_lopxx
sjx_quit12:  MOV       s,0
POP       y3
POP      y2
POP      y1
POP       x3
POP      x2
POP      x1
POPa
RET
sjxx           ENDP

 

;**************************liney      x=(x2-x1)(y-y1)/(y2-y1)+x1
;*****************y++


sjxy  PROC NEAR
PUSH      x1
PUSH      x2
PUSH      x3
PUSH      y1
PUSH      y2
PUSH      y3
pusha
CALL      xymaxmin
MOV       AX,xmin
MOV       sjx_xmin,AX
MOV       AX,ymin
MOV       sjx_ymin,AX
MOV       AX,xmax
MOV       sjx_xmax,AX
MOV       AX,ymax
MOV       sjx_ymax,AX
MOV       AX,yminx
MOV       sjx_yminx,AX
MOV AX,y2
MOV BX,y1
CALL subab
MOV       sjx_y2y1,AX
MOV       SI,0
CMP       SI,AX
JE        sjxy_heng
JMP       sjxy_lop1
sjxy_heng:
MOV       DL,s
MOV       s2,DL
MOV       s,0
MOV       AX,x3
MOV       x2,AX
MOV       AX,y3
MOV       y2,AX
JMP       sjxy_hengxian
sjxy_lop1:    MOV      AX,x2
MOV      BX,x1            ;x=(x2-x1)(y-y1)/(y2-y1)+x1
CALL     subab
MOV       DL,s
MOV       s2,DL
MOV       s,0
MOV       sjx_x2x1,AX
MOV       AX,x3
MOV       x2,AX
MOV       AX,y3
MOV       y2,AX
MOV       AX,sjx_ymin
MOV       y1,AX

sjxy_line0y:  SUB       AX,sjx_ymin
MOV       DX,0
MOV       CX,sjx_x2x1
MUL       CX
MOV       CX,sjx_y2y1
DIV       CX
MOV       DX,0
CMP       DL,s2
JE        sjxy_zhengy
MOV       CX,AX
MOV       AX,sjx_yminx
SUB       AX,CX
JMP       sjxy_kky3
sjxy_zhengy:
ADD       AX,sjx_yminx
sjxy_kky3:
MOV       x1,AX
CALL      linex

CALL      liney
INC       y1
MOV       AX,y1
CMP       AX,sjx_ymax
JBE       sjxy_line0y
JMP       sjxy_quity
sjxy_hengxian:     MOV       AX,sjx_ymin
MOV       y1,AX
MOV       AX,sjx_xmin
MOV       x1,AX
sjxy_lopy:    CALL      liney
CALL      linex
INC       x1
MOV       AX,sjx_xmax
CMP       AX,x1
JAE       sjxy_lopy

sjxy_quity:  MOV       s,0
POPa
POP       y3
POP      y2
POP      y1
POP       x3
POP      x2
POP      x1
RET
sjxy          ENDP

;
xymaxmin      PROC      NEAR
PUSHa
PUSH      x1
PUSH      x2
PUSH      y1
PUSH      y2
MOV       AX,x1
CMP       AX,x2
JAE       x1dyx2
MOV       xmin,AX    ;x1<x2
MOV       AX,y1
MOV       xminy,AX
MOV       AX,x2
MOV       xmax,AX
JMP       ymaxmin
x1dyx2:       MOV       xmax,AX
MOV       AX,x2
MOV       xmin,AX
MOV       AX,y2
MOV       xminy,AX        ;xminx 所对应的y
ymaxmin:      MOV       AX,y1
CMP       AX,y2
JAE       y1dyy2
MOV       ymin,AX
MOV       AX,x1
MOV       yminx,AX       ;所对应的x
MOV       AX,y2
MOV       ymax,AX
JMP       xymax_quit
y1dyy2:       MOV       ymax,AX
MOV       AX,y2
MOV       ymin,AX
MOV       AX,x2
MOV       yminx,AX
xymax_quit:
POP      y2
POP      y1
POP      x2
POP      x1
POPa
RET
xymaxmin      ENDP

DIan PROC NEAR           ;画一点x,y
PUSHa
MOV       AH,s
MOV       s3,AH
MOV       AH,SIgle
AND       AH,80h
CMP       AH,0
JE        puanduan
paint:
MOV AL,color
MOV BH,page1
MOV       DX,y
MOV CX,x        ;列号
MOV AH,0ch
INT 10h
JMP       DIanquit
puanduan:
CALL      readerdian
MOV       DIancolor,AL
MOV       AH,SIgle

AND       AH,7fh
CMP       AH,0
JE        NEw0
CMP       AH,1
JE        NEw1
CMP       AH,2
JE        NEw2
CMP       AH,3
JE        NEw3
CMP       AH,4
JE        NEw4
CMP       AH,5
JE        NEw5
CMP       AH,6
JE        NEw6
JMP       DIanquit

NEw0:         CMP       DIancolor,0
JE        topaint
JMP       DIanquit
NEw1:         CMP       DIancolor,0
JE        topaint
MOV       AH,color_hour
CMP       DIancolor,AH
JE        topaint
JMP       DIanquit
topaint:      JMP       paint

NEw2:         MOV       AH,color_min
CMP       DIancolor, AH
JE        topaint
JMP       DIanquit
NEw3:         JMP       NEw0
NEw4:         JMP       NEw0
NEw5:         MOV       AH,color_hour
CMP       DIancolor,AH
JE        topaint
JMP       DIanquit
NEw6:         CMP       DIancolor,0
JE        topaint
JMP       DIanquit
MOV       AX,x
MOV       BX,x0
CALL      SUBab
CMP       AX,5
JA        topaint
MOV       AX,y
MOV       BX,y0
CALL      SUBab
CMP       AX,5
JA        topaint


DIanquit:     MOV       AH,s3
MOV       s,AH
POPa
RET
DIan ENDP

yuanxin       PROC
MOV       AL,color_second
ADD       AL,1
MOV       BH,PAGE1
MOV       DX,y0
MOV       CX,x0
MOV       AH,0ch
INT       10h
DEC       DX
MOV       AH,0ch
INT       10h
DEC       CX
MOV       AH,0ch
INT       10h
INC       DX
MOV       AH,0ch
INT       10h
INC       DX
MOV       AH,0ch
INT       10h
INC       CX
MOV       AH,0ch
INT       10h
INC       CX
MOV       AH,0ch
INT       10h
SUB       DX,1
MOV       AH,0ch
INT       10h
DEC       DX
MOV       AH,0ch
INT       10h

RET
yuanxin       ENDP

readerdian    PROC
MOV       BH,page1
MOV       DX,y
MOV       CX,x        ;列号
MOV       AH,0dh
INT       10h
RET
readerdian    ENDP


b1002         PROC      NEAR           ;入口DX-光标定位
MOV       BH,0
MOV       AH,02h
INT       10h
RET
b1002         ENDP


CLear         PROC
MOV       DX,0410h
CALL      b1002
MOV       CX,6000
MOV       BH,PAGE1
MOV       AL,' '
MOV       AH,0ah
INT       10h
RET
CLear         ENDP


;      12根******************************
skin2         PROC
PUSHa
MOV       AL,color6
MOV       color,AL

MOV       CX,12
MOV       AX,0
skin2_kk1:    PUSH      CX

PUSH      AX
MOV       BX,r0
MOV       CX,y0
MOV       DX,x0

CALL      enovate
MOV       AX,x
MOV       x1,AX
MOV       AX,y
MOV       y1,AX
POP       AX
PUSH      AX

MOV       BX,r0
ADD       BX,10
MOV       CX,y0
MOV       DX,x0

CALL      enovate
MOV       AX,x
MOV       x2,AX
MOV       AX,y
MOV       y2,AX
CALL      linex
CALL      liney
POP       AX
ADD       AX,30

POP       CX
LOOP      skin2_kk1
MOV       CX,4
MOV       AX,0
skin2_kk2:    PUSH      CX

PUSH      AX
MOV       BX,r0
MOV       CX,y0
MOV       DX,x0

CALL      enovate
MOV       AX,x
MOV       x1,AX
MOV       AX,y
MOV       y1,AX
POP       AX
PUSH      AX

MOV       BX,r0
ADD       BX,20
MOV       CX,y0
MOV       DX,x0

CALL      enovate
MOV       AX,x
MOV       x2,AX
MOV       AX,y
MOV       y2,AX
CALL      linex
CALL      liney
POP       AX
ADD       AX,90

POP       CX
LOOP      skin2_kk2

POPa
RET
skin2         ENDP
;60根**********************************88

skin3         PROC
PUSHa
MOV       AL,color5
MOV       color,AL
MOV       CX,60
MOV       AX,0
skin2_kk3:    PUSH      CX

PUSH      AX
MOV       BX,r0
MOV       CX,y0
MOV       DX,x0

CALL      enovate
MOV       AX,x
MOV       x1,AX
MOV       AX,y
MOV       y1,AX
POP       AX
PUSH      AX

MOV       BX,r0
ADD       BX,3
MOV       CX,y0
MOV       DX,x0

CALL      enovate
MOV       AX,x
MOV       x2,AX
MOV       AX,y
MOV       y2,AX
CALL      linex
CALL      liney
POP       AX
ADD       AX,6

POP       CX
LOOP      skin2_kk3
POPa
RET
skin3         ENDP

;数字加圆**************************************88
skin          PROC      NEAR
MOV       AL,color4
MOV       color,AL
MOV       BX,r0
CALL      yuan
MOV       BX,r0
MOV       DH,7
MOV       DL,39
CALL      b1002
MOV       DL,'1'
MOV       AH,2
INT       21h
MOV       DH,7
MOV       DL,40
CALL      b1002
MOV       DL,'2'
MOV       AH,2
INT       21h 



MOV       DH,8
MOV       DL,47
CALL      b1002
MOV       DL,'1'
MOV       AH,2
INT       21h

MOV       DH,11
MOV       DL,53
CALL      b1002
MOV       DL,'2'
MOV       AH,2
INT       21h

MOV       DH,19
MOV       DL,53
CALL      b1002
MOV       DL,'4'
MOV       AH,2
INT       21h

MOV       DH,22
MOV       DL,47
CALL      b1002
MOV       DL,'5'
MOV       AH,2
INT       21h

MOV       DH,22
MOV       DL,32
CALL      b1002
MOV       DL,'7'
MOV       AH,2
INT       21h

MOV       DH,19
MOV       DL,26
CALL      b1002
MOV       DL,'8'
MOV       AH,2
INT       21h

MOV       DH,11
MOV       DL,25
CALL      b1002
MOV       DL,'1'
MOV       AH,2
INT       21h
MOV       DH,11
MOV       DL,26
CALL      b1002
MOV       DL,'0'
MOV       AH,2
INT       21h

MOV       DH,8
MOV       DL,30
CALL      b1002
MOV       DL,'1'
MOV       AH,2
INT       21h
MOV       DH,8
MOV       DL,31
CALL      b1002
MOV       DL,'1'
MOV       AH,2
INT       21h

MOV       DH,15
MOV       DL,55
CALL      b1002
MOV       DL,'3'
MOV       AH,2
INT       21h
MOV       DH,23
MOV       DL,40
CALL      b1002
MOV       DL,'6'
MOV       AH,2
INT       21h
MOV       DH,15
MOV       DL,24
CALL      b1002
MOV       DL,'9'
MOV       AH,2
INT       21h
RET

skin          ENDP

msg           PROC      NEAR        ;in bp为输出字符串地址
PUSH      ES
PUSH      DS
POP       ES
MOV       CX,40h
MOV       AL,0
MOV       BX,2
MOV       AH,13h
INT       10h
POP       ES
RET
msg           ENDP

;*****************in dl  out al
bcd2          PROC      NEAR
MOV       AH,0
MOV       AL,DL
SHR       AL,4
AND       AL,0fh
MOV       CL,10
MUL       CL
MOV       CL,AL
MOV       AL,DL
AND       AL,0fh
ADD       AL,CL;;;;;      bcd转16进制
RET
bcd2          ENDP

;r0=bx    圆心cx 行 dx列********************
yuan          PROC
PUSHa
MOV       CX,360
MOV       AX,0
yuan_kk1:     PUSH      CX
PUSH      AX
MOV       CX,y0
MOV       DX,x0
CALL      enovate
CALL      dian
POP       AX
ADD       AX,1
POP       CX
LOOP      yuan_kk1

POPa
RET
yuan          ENDP

;*****************in ax度数    bx=半径r长度,cx 列 dx行  圆心 out  x,y************
enovate       PROC      NEAR
PUSHa
PUSH      DX
PUSH      AX
PUSH      CX
CALL      SIn
MOV       DX,0
MOV       CX,BX
DIV       CX
POP       CX
CMP       SI,1
JE        ian

ADD       AX,CX
JMP       enovate_kk1
ian:          SUB       CX,AX
MOV       AX,CX
enovate_kk1:  MOV       y,AX
POP       AX
CALL      cos
MOV       DX,0
MOV       CX,BX
DIV       CX
POP       DX
CMP       SI,1
JE        ian2
ADD       AX,DX
JMP       enovate_kk2
ian2:         MOV       CX,DX
SUB       CX,AX
MOV       AX,CX
enovate_kk2:  MOV       x,AX
POPa
RET
enovate     ENDP

 

MAIN          ENDP
;------------------------------------------------------
CODE_SEG      ENDS
;******************************************************
END       START    ;程序结束

微机原理课程设计_钟表显示

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -