Skip to content

Commit

Permalink
Added course material for "Assembly Language and Computer Interface" …
Browse files Browse the repository at this point in the history
…taught by Prof. Shou Shanxiong, who teaches the x86 version of this course
  • Loading branch information
boya-zhang committed Mar 3, 2018
1 parent 42f4c95 commit 58ec9b8
Show file tree
Hide file tree
Showing 529 changed files with 33,052 additions and 0 deletions.
1 change: 1 addition & 0 deletions 汇编与接口/Readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
由于在这门课程目前(2017-18学年)尽管课程号相同,但是不同老师的授课内容是完全不同的,如首山雄老师教的是x86平台的内容,而有的老师教授MIPS平台等。因此,本目录下再按照老师开设二级目录以进行区分。
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
本目录下的文件来自曹西301实验室的电脑上,为多年前的实验ppt、参考代码等。由于实验板已经很老了(2004年的),几乎很难找到有用的相关资料,因此这些多年前的资料在我们进行实验时起到了很大的作用。随着时间推移,实验部分的教学内容和要求都有了很大的变化,这些内容仅供参考。
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,187 @@
;һ���򵥵ĵ����ӣ����ö�ʱ�����жϷ�ʽ��ʱ���ò��пڿ���LED��ɨ��
;��ҪSXL_100�ӿ�ʵ����һ��

DSEG SEGMENT
ADDRESS DW 0DE00H ;ʵ���˿��׵�ַ
CSCS DW 0 ;���ڱ���ԭ�ж�CS
IPIP DW 0 ;���ڱ���ԭ�ж�IP
DISP DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,098H ;�������ʾ����
SG DB 1110B,1101B,1011B,0111B ;λѡ
STAT DB 0 ;����5259״̬
STATUS DB 0 ;����9052״̬
TIME DB 0,0,0,0 ;��ʼʱ��00��00
CNT DB 0 ;����ֵ����20Ϊ1��
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
MAIN PROC FAR
MOV AX,DSEG
MOV DS,AX
MOV ES,AX

;���ü�����������ʽ
MOV DX,ADDRESS
ADD DX,23H
MOV AL,10110110B
OUT DX,AL

MOV DX,ADDRESS
ADD DX,22H
MOV AX,50000
OUT DX,AL
MOV AL,AH
OUT DX,AL

;���ò��ڹ�����ʽ
MOV DX,ADDRESS
ADD DX,3H
MOV AL,10000000B
OUT DX,AL

;���ж�
CLI

;ȡԭ�жϣ�����INT 72H
MOV AX,3572H
INT 21H
MOV CSCS,ES
MOV IPIP,BX

;�������ж�
MOV AX,CS
MOV DS,AX
MOV DX,OFFSET INTS
MOV AX,2572H
INT 21H

;����DS,ES
MOV AX,DSEG
MOV DS,AX
MOV ES,AX

;ʹ��9052
MOV DX,0DD80H + 4CH
IN AL,DX
MOV STATUS,AL
OR AL,5BH
OUT DX,AL
MOV DX,0DD80H + 4DH
IN AL,DX
OR AL,0CH
OUT DX,AL

;������
IN AL,0A1H
MOV STAT,AL
AND AL,11111011B
OUT 0A1H,AL

;���ж�
STI

;�жϴ���
MOV DI,0H
;�����
LP: CMP TIME[0],10
JNZ LR

MOV TIME[0],0
ADD TIME[1],1
CMP TIME[1],6
JNZ LR

MOV TIME[1],0
ADD TIME[2],1
CMP TIME[2],10
JNZ LR

MOV TIME[2],0
ADD TIME[3],1
CMP TIME[3],6
JNZ LR

MOV TIME[3],0

LR: MOV DX,ADDRESS ;����λѡ
ADD DX,1H
MOV AL,SG[DI]
OUT DX,AL

MOV DX,ADDRESS ;��������ܶ���
MOV BL,TIME[DI]
MOV BH,0
MOV AL,DISP[BX]
OUT DX,AL

CALL DELAY ;��ʱ

INC DI

CMP DI,4
JNZ LP
MOV DI,0
JMP LP

;���ж�
CLI

;����DS,ES
MOV AX,DSEG
MOV DS,AX
MOV ES,AX

;5:����
MOV AL,STAT
OUT 0A1h,AL

;�ر�9052
MOV DX,0DD80H + 4CH
mov AL,STATUS
OUT DX,AL

;6:�ָ�ԭ�ж�
MOV DX,IPIP
MOV AX,CSCS
MOV DS,AX
MOV AX,2572H
INT 21H

;���ж�
STI

;����DOS
MOV AH,4CH
INT 21H
MAIN ENDP

;��ʱ�ӳ���
DELAY PROC
PUSH AX
PUSH CX
MOV AX,0H
L: INC AX
MOV CX,0H
R: INC CX
CMP CX,0FFH
JNZ R
CMP AX,0FFH
JNZ L
POP CX
POP AX
RET
DELAY ENDP

;�жϴ�������
INTS PROC FAR
;���ж�
CLI
;�����ֳ�
PUSH AX

;�жϴ���
ADD CNT,1H
CMP CNT,20
JB IR

MOV CNT,0H
ADD TIME[0],1
Binary file not shown.
Binary file not shown.
Binary file not shown.
Original file line number Diff line number Diff line change
@@ -0,0 +1,186 @@
;һ���򵥵ĵ����ӣ����ö�ʱ�����жϷ�ʽ��ʱ���ò��пڿ���LED��ɨ��

DSEG SEGMENT
ADDRESS DW 0DE00H ;ʵ���˿��׵�ַ
CSCS DW 0 ;���ڱ���ԭ�ж�CS
IPIP DW 0 ;���ڱ���ԭ�ж�IP
DISP DB 0C0H,0F9H,0A4H,0B0H,099H,092H,082H,0F8H,080H,098H ;�������ʾ����
SG DB 1110B,1101B,1011B,0111B ;λѡ
STAT DB 0 ;����5259״̬
STATUS DB 0 ;����9052״̬
TIME DB 0,0,0,0 ;��ʼʱ��00��00
CNT DB 0 ;����ֵ����20Ϊ1��
DSEG ENDS
CSEG SEGMENT
ASSUME CS:CSEG,DS:DSEG
MAIN PROC FAR
MOV AX,DSEG
MOV DS,AX
MOV ES,AX

;���ü�����������ʽ
MOV DX,ADDRESS
ADD DX,23H
MOV AL,10110110B
OUT DX,AL

MOV DX,ADDRESS
ADD DX,22H
MOV AX,50000
OUT DX,AL
MOV AL,AH
OUT DX,AL

;���ò��ڹ�����ʽ
MOV DX,ADDRESS
ADD DX,3H
MOV AL,10000000B
OUT DX,AL

;���ж�
CLI

;ȡԭ�жϣ�����INT 72H
MOV AX,3572H
INT 21H
MOV CSCS,ES
MOV IPIP,BX

;�������ж�
MOV AX,CS
MOV DS,AX
MOV DX,OFFSET INTS
MOV AX,2572H
INT 21H

;����DS,ES
MOV AX,DSEG
MOV DS,AX
MOV ES,AX

;ʹ��9052
MOV DX,0DD80H + 4CH
IN AL,DX
MOV STATUS,AL
OR AL,5BH
OUT DX,AL
MOV DX,0DD80H + 4DH
IN AL,DX
OR AL,0CH
OUT DX,AL

;������
IN AL,0A1H
MOV STAT,AL
AND AL,11111011B
OUT 0A1H,AL

;���ж�
STI

;�жϴ���
MOV DI,0H
;�����
LP: CMP TIME[0],10
JNZ LR

MOV TIME[0],0
ADD TIME[1],1
CMP TIME[1],6
JNZ LR

MOV TIME[1],0
ADD TIME[2],1
CMP TIME[2],10
JNZ LR

MOV TIME[2],0
ADD TIME[3],1
CMP TIME[3],6
JNZ LR

MOV TIME[3],0

LR: MOV DX,ADDRESS ;����λѡ
ADD DX,1H
MOV AL,SG[DI]
OUT DX,AL

MOV DX,ADDRESS ;��������ܶ���
MOV BL,TIME[DI]
MOV BH,0
MOV AL,DISP[BX]
OUT DX,AL

CALL DELAY ;��ʱ

INC DI

CMP DI,4
JNZ LP
MOV DI,0
JMP LP

;���ж�
CLI

;����DS,ES
MOV AX,DSEG
MOV DS,AX
MOV ES,AX

;5:����
MOV AL,STAT
OUT 0A1h,AL

;�ر�9052
MOV DX,0DD80H + 4CH
mov AL,STATUS
OUT DX,AL

;6:�ָ�ԭ�ж�
MOV DX,IPIP
MOV AX,CSCS
MOV DS,AX
MOV AX,2572H
INT 21H

;���ж�
STI

;����DOS
MOV AH,4CH
INT 21H
MAIN ENDP

;��ʱ�ӳ���
DELAY PROC
PUSH AX
PUSH CX
MOV AX,0H
L: INC AX
MOV CX,0H
R: INC CX
CMP CX,0FFH
JNZ R
CMP AX,0FFH
JNZ L
POP CX
POP AX
RET
DELAY ENDP

;�жϴ�������
INTS PROC FAR
;���ж�
CLI
;�����ֳ�
PUSH AX

;�жϴ���
ADD CNT,1H
CMP CNT,20
JB IR

MOV CNT,0H
ADD TIME[0],1
Binary file not shown.
Loading

0 comments on commit 58ec9b8

Please sign in to comment.