欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4688|回復: 1
收起左側

匯編程序錯誤(106) wrong parameters: MOV DX, INI_A

[復制鏈接]
ID:627219 發表于 2019-12-5 10:55 | 顯示全部樓層 |閱讀模式

;定義一個輸出專用的宏,PORT表示端口地址,DATA表示要輸出的數據(8位)
OUT_PORT MACRO  PORT,DATA  
    MOV  DX, PORT
    MOV  AL, DATA
    OUT  DX, AL
ENDM
;====================================================================
;中斷向量設置,X為中斷向量,Y為中斷子程序名
SET_INT  MACRO  X,Y
    PUSH  DS
    MOV AX,0
    MOV DS,AX
    MOV DI,X*4
    MOV AX,OFFSET Y
    MOV [DI],AX
    MOV AX,SEG Y
    MOV [DI+2],AX
    POP DS
ENDM
; INI_A為偶數口地址,ICW1,ICW2,ICW4為對于要寫入的命令,適合與單片8259初始化
INIT_8259  MACRO  INI_A,ICW1,ICW2,ICW4
    OUT_PORT INI_A,ICW1
    OUT_PORT INI_A+2,ICW2
    OUT_PORT INI_A+2,ICW4
ENDM
;====================================================================
;8253初始化,INT8253C為命令口地址,X為命令內容,A8253為計數器N的端口,Y為計數初值
INIT_8253 MACRO INT8253C,X,A8253,Y
    OUT_PORT INT8253C,X                ;命令口
    MOV AX,Y
    MOV DX,A8253
    OUT DX,AL
    MOV AL,AH
    OUT DX,AL
ENDM
;====================================================================
;X用于表示當前計數單元,NUM用于當前計時最大值(60,24),Y表示下一計數單元,Z為轉換的LED編碼存儲單元
INT_PRO  MACRO  X,NUM,Y,Z
    LOCAL AA
    XOR BX,BX
    MOV AX,BX    ;   
    MOV AL,X
    CMP AL,NUM                      ;比較秒計數是否到60
    JNE AA                         ;不是,則轉AA
    INC Y                          ;是,則分鐘加一
    MOV AL,0                       ;令秒=0
    MOV X,AL
AA:
    MOV BL,10
    DIV BL
    MOV BL,AL
    MOV AL,LED[BX]                 ;轉換秒的高位
    MOV Z,AL
    MOV BL,AH
    MOV AL,LED[BX]                 ;轉換秒的低位
    MOV Z+1,AL
ENDM
;====================================================================

DATA SEGMENT
    ;4-16譯碼器輸出對應端口
    IO1    EQU  10H
    IO2    EQU  20H                      ;8259端口
    IO3    EQU  30H                      ;8255 A口地址
    IO4    EQU  40H                      ;8253 計數器0端口地址
    IO5    EQU  50H
    IO6    EQU  60H
    IO7    EQU  70H
                                        ;....
    IOA    EQU  0A0H  
    TIMERS EQU  1000                    ;計數初值
    LED   DB  3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H         ;0--F對應編碼,共陰極
    ;LED1  DB  0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,90h,90h,90h,90h,90h
    PORTA  EQU  IO3                    ;8255 A口地址
    PORTB  EQU  IO3+2
    PORTC  EQU  IO3+4
    PORT_CON EQU IO3+6
    T_HOUR  DB  0                       ;用于小時計數
    T_MIN   DB  0                       ;用于分計數
    T_SEC   DB  0                       ;用于秒計數
    TEMP    DB  0
    HOUR    DB  0,0,40H               ;用于存放LED顯示編碼/小時
    MINTU   DB  0,0,40H
    SEC     DB  0,0
DATA ENDS

STACK SEGMENT PARA STACK 'STACK'         ;堆棧段
      DW  1024 DUP (?)
STACK ENDS

CODE    SEGMENT PUBLIC 'CODE'
        ASSUME CS:CODE,DS:DATA,SS:STACK

START:
    MOV AX, DATA
    MOV DS, AX                 ;數據段設置
    MOV AX,STACK
    MOV SS,AX                  ;堆棧段設置


    CLI                       ;關中斷
    ;設置中斷向量
    SET_INT 80H,INT_0         ;接IR0,若要接其他引腳,注意修改中斷向量   
    ;初始化8259,按次序寫ICW1,ICW2,ICW4
    INIT_8259 IO2,13H,80H,03H      ;ICW1,邊沿觸發,單片,需要ICW4,ICW2=80H,ICW4,自動結束     

    OUT_PORT  IO3+6,80H            ;8255初始化
    INIT_8253 IO4+6,36H,IO4,TIMERS   ;8253初始化,方式3,計數器0
    INIT_8253 IO4+6,76H,IO4+2,TIMERS  ;8253初始化,方式3,計數器1

    OUT_PORT IO2+2,00H             ;OCW1,全開放      
    STI                           ;開中斷
L:
    CALL DISPLAY                  ;
    JMP L   

    NOP   

INT_0  PROC                       ;中斷服務程序
    CLI   
    PUSH AX
    INC T_SEC
    INT_PRO T_SEC,60,T_MIN,SEC      ;秒
    INT_PRO T_MIN,60,T_HOUR,MINTU   ;分
    INT_PRO T_HOUR,24,TEMP,HOUR     ;小時
    POP AX
    STI   
    IRET
INT_0 ENDP        

DISPLAY  PROC  NEAR               ;LED顯示   
    MOV CX,7F08H                  ;CH用于控制,CL用于循環
    LEA DI,HOUR
DISP_L:   
    OUT_PORT  PORTA,[DI]
    OUT_PORT  PORTB,CH            ;CH決定第幾位顯示
    CALL DELAY
    OUT_PORT  PORTB,0FFH   
    INC  DI
    ROR  CH,1
    DEC  CL
    JNZ  DISP_L
    RET
DISPLAY  ENDP

DELAY PROC NEAR
    PUSH CX   
    MOV CX,100                  ;延時,根據需要調整
LP2:
    LOOP LP2
    POP  CX   
    RET
DELAY ENDP

CODE    ENDS
        END START


放大的地方報錯,是為什么哦?

回復

使用道具 舉報

ID:123289 發表于 2019-12-5 18:49 | 顯示全部樓層
錯誤提示長什么樣子,截個電腦圖。
回復

使用道具 舉報

無效樓層,該帖已經被刪除
您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表