具体:用中断0、1分别控制高四位和低四位的LED灯通过中断实现其的循环点亮。应该怎么做?下面是我写的请帮忙检查一下错误
ORG 0000H
AJMP MAIN
ORG 0003H
SJMP INT_2
ORG 0013H
SJMP INT_1
MAIN: MOV SP,#60H
MOV A,#0EEH
MOV P2,A
SETB IT1
SETB EA
SETB EX1
SETB EX0
SJMP $
INT_1: MOV 0EH
ANL A,#0FH
RL A
MOV P2,A
JNB P2.3,INT_1
RETI
INT_2: MOV 0E0H
ANL A,#0F0H
RL A
MOV P2,A
JNB P2.7,INT_2
RETI
END
关于中断的,要使用汇编语言编写?
答案:2 悬赏:0 手机版
解决时间 2021-03-01 15:00
- 提问者网友:暮烟疏雨之际
- 2021-02-28 15:06
最佳答案
- 五星知识达人网友:纵马山川剑自提
- 2021-02-28 16:09
ORG 0000H
AJMP MAIN
ORG 0003H
SJMP INT_0
ORG 0013H
SJMP INT_1
MAIN:
SETB IT1
SETB IT0
SETB EX1
SETB EX0
SETB EA
MOV SP, #60H
M_LOOP:
MOV P2, #0EEH
SJMP M_LOOP
;----------------------------
INT_0:
MOV A, #0EFH
INT_0L:
MOV P2, A
CALL DELAY
RL A
JB ACC.0, INT_0L
RETI
;----------------------------
INT_1:
MOV A, #0FEH
INT_1L:
MOV P2, A
CALL DELAY
RL A
JB ACC.4, INT_1L
RETI
;----------------------------
DELAY:
DJNZ R6, $
DJNZ R7, $ - 2
RET
;----------------------------
END
AJMP MAIN
ORG 0003H
SJMP INT_0
ORG 0013H
SJMP INT_1
MAIN:
SETB IT1
SETB IT0
SETB EX1
SETB EX0
SETB EA
MOV SP, #60H
M_LOOP:
MOV P2, #0EEH
SJMP M_LOOP
;----------------------------
INT_0:
MOV A, #0EFH
INT_0L:
MOV P2, A
CALL DELAY
RL A
JB ACC.0, INT_0L
RETI
;----------------------------
INT_1:
MOV A, #0FEH
INT_1L:
MOV P2, A
CALL DELAY
RL A
JB ACC.4, INT_1L
RETI
;----------------------------
DELAY:
DJNZ R6, $
DJNZ R7, $ - 2
RET
;----------------------------
END
全部回答
- 1楼网友:猎心人
- 2021-02-28 17:28
我做的是从2开始的100个偶数的和,结果是2774h,即十进制的10100
没有编写输出语句,要用debug看结果。
dseg segment
sum dw ?
dseg ends
cseg segment
assume cs:cseg,ds:dseg
begin: mov ax,dseg
mov ds,ax
xor ax,ax
mov cx,1
again: mov bx,cx
shl bl,1
add ax,bx
inc cx
cmp cx,100
jbe again
mov sum,ax
mov ah,4ch
int 21h
cseg ends
end begin
下面这个程序是计算100以内的偶数和,并以十六进制显示:
dseg segment
sum dw ?
tab db '0123456789abcdef'
dseg ends
cseg segment
assume cs:cseg,ds:dseg
begin: mov ax,dseg
mov ds,ax
xor ax,ax
mov cx,100
again: add ax,cx
sub cx,2
jnz again
mov sum,ax
;以上是求和,并存到sum单元
mov bx,offset tab
mov dh,4
mov cl,4
next: rol ax,cl
push ax
and ax,0fh
xlat
mov dl,al
mov ah,2
int 21h
pop ax
dec dh
jnz next
mov dl,'h'
mov ah,2
int 21h
;以上是以十六进制显示,思想是分离出四位,查表转换成ascii码,并用2号功能显示,循环4次。最后输出后缀h
mov ah,4ch
int 21h
cseg ends
end begin
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯