久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1476|回復(fù): 3
收起左側(cè)

8086匯編報錯

[復(fù)制鏈接]
ID:1064544 發(fā)表于 2023-2-27 20:12 | 顯示全部樓層 |閱讀模式
;定義一個輸出專用的宏,PORT表示端口地址,DATA表示要輸出的數(shù)據(jù)(8位)
OUT_PORT MACRO  PORT,DATA  
    MOV  DX, PORT
    MOV  AL, DATA
    OUT  DX, AL
ENDM
;====================================================================
;中斷向量設(shè)置,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為偶數(shù)口地址,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為命令內(nèi)容,A8253為計數(shù)器N的端口,Y為計數(shù)初值
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用于表示當(dāng)前計數(shù)單元,NUM用于當(dāng)前計時最大值(60,24),Y表示下一計數(shù)單元,Z為轉(zhuǎn)換的LED編碼存儲單元
INT_PRO  MACRO  X,NUM,Y,Z
    LOCAL AA
    XOR BX,BX
    MOV AX,BX    ;   
    MOV AL,X
    CMP AL,NUM                      ;比較秒計數(shù)是否到60
    JNE AA                         ;不是,則轉(zhuǎn)AA
    INC Y                          ;是,則分鐘加一
    MOV AL,0                       ;令秒=0
    MOV X,AL
AA:
    MOV BL,10
    DIV BL
    MOV BL,AL
    MOV AL,LED[BX]                 ;轉(zhuǎn)換秒的高位
    MOV Z,AL
    MOV BL,AH
    MOV AL,LED[BX]                 ;轉(zhuǎn)換秒的低位
    MOV Z+1,AL
ENDM
;====================================================================

DATA SEGMENT
    ;4-16譯碼器輸出對應(yīng)端口
    IO1    EQU  10H
    IO2    EQU  20H                      ;8259端口
    IO3    EQU  30H                      ;8255 A口地址
    IO4    EQU  40H                      ;8253 計數(shù)器0端口地址
    IO5    EQU  50H
    IO6    EQU  60H
    IO7    EQU  70H
                                        ;....
    IOA    EQU  0A0H  
    TIMERS EQU  1000                    ;計數(shù)初值
    LED   DB  3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H         ;0--F對應(yīng)編碼,共陰極
    ;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                       ;用于小時計數(shù)
    T_MIN   DB  0                       ;用于分計數(shù)
    T_SEC   DB  0                       ;用于秒計數(shù)
    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                 ;數(shù)據(jù)段設(shè)置
    MOV AX,STACK
    MOV SS,AX                  ;堆棧段設(shè)置


    CLI                       ;關(guān)中斷
    ;設(shè)置中斷向量
    SET_INT 80H,INT_0         ;接IR0,若要接其他引腳,注意修改中斷向量   
    ;初始化8259,按次序?qū)慖CW1,ICW2,ICW4
    INIT_8259 IO2,13H,80H,03H      ;ICW1,邊沿觸發(fā),單片,需要ICW4,ICW2=80H,ICW4,自動結(jié)束     

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

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

    NOP   

INT_0  PROC                       ;中斷服務(wù)程序
    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用于循環(huán)
    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                  ;延時,根據(jù)需要調(diào)整
LP2:
    LOOP LP2
    POP  CX   
    RET
DELAY ENDP

CODE    ENDS
        END START


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

51hei截圖20230227201145.png
回復(fù)

使用道具 舉報

ID:883242 發(fā)表于 2023-2-28 02:03 | 顯示全部樓層
你給出的代碼里面沒有報錯的那一行。
回復(fù)

使用道具 舉報

ID:1064544 發(fā)表于 2023-2-28 11:36 | 顯示全部樓層
但是用emu8086報錯指出的就是這一行,會不會是初始化8259和8253的代碼有問題
回復(fù)

使用道具 舉報

ID:123289 發(fā)表于 2023-2-28 16:56 | 顯示全部樓層
MOV DX, ?必須保證【?】是一個16位數(shù)(如:地址、立即數(shù)),或一個確定16位寄存器名等。
看看你的【?】是不是無法確認(rèn)。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产一区 | 欧美精品第一页 | 午夜久久久久久久久久一区二区 | 国产成人久久精品一区二区三区 | 激情影院久久 | 久久精品中文字幕 | 日韩在线播放视频 | 国产精品无码久久久久 | 2019天天操| 国产在线一区观看 | 国产九九av | 久久综合久色欧美综合狠狠 | 亚洲国产精品激情在线观看 | 搞av.com| 男人天堂av网| 日本色高清 | 亚洲高清视频在线观看 | 精品国产乱码久久久久久蜜臀 | 国产精品亚洲成在人线 | 国产精品 亚洲一区 | 国产视频福利 | 成人欧美一区二区三区黑人孕妇 | 欧美激情亚洲 | 超碰97免费在线 | 三级视频久久 | 成人午夜电影在线观看 | 日韩一区二区三区精品 | 在线免费观看a级片 | 久久不卡区 | japan25hdxxxx日本| 久久丝袜视频 | 青青久视频 | 女同videos另类 | 亚洲国产中文在线 | 九九精品网| 欧美激情一区二区三区 | 欧美精品三区 | 一区二区三区免费 | 国产精品久久久久永久免费观看 | 狠狠热视频 | 精品人伦一区二区三区蜜桃网站 |