博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
8086_proteus_all_dsn
阅读量:2339 次
发布时间:2019-05-10

本文共 2178 字,大约阅读时间需要 7 分钟。

为了备考,把8086相关的所有芯片都跑了一遍,都放在一个proteus dsn文件里了,需要的同学可以去

;标识定义IO1 EQU 0100hIO2 EQU 0200hIO3 EQU 0300hIO4 EQU 0400hIO5 EQU 0500hIO6 EQU 0600hIO7 EQU 0700hIO8 EQU 0800hIO9 EQU 0900hADDR0 EQU 60hassume cs:codeassume ss:stackstack segment stackdb 32 dup(0)stack endscode segmentstart:	call M8259	jmp $; 中断 8259, IO8M8259 proc	pushf	push ax	push bx		cli	mov ax, 0	mov es, ax	mov si,ADDR0*4	;设置中断向量	mov ax,offset int0	mov es:[si],ax	mov ax,cs	mov es:[si+2],ax        mov al,00010011b; ICW1, 单片, 跳变触发	mov dx,IO8	out dx,al	mov al,ADDR0; ICW2 中断类型码为 060 ~ 068h;	mov dx,IO8 + 2	out dx,al	;mov al,1bh; ICW4 00011011b	mov al, 01h; ICW4 非缓冲, 非自动EOI, 非特殊套嵌 	out dx,al	mov al, 0h; OCW1 完全不屏蔽	out dx, al	mov dx, IO8	mov al, 20h; OCW2 IR0 普通EOI结束	out dx, al	; 中断仿真bug, 地址线放数据进行模拟	mov dx, IO8	mov al, ADDR0	out dx, al	sti	jmp $	pop bx	pop ax		popf	retM8259 endp; 串行 8251, IO7M8251 proc	pushf	push ax	push dx	push cx	mov dx, IO7 + 2; 写串行 方式选择控制字	mov al, 7dh	;mov al, 01001101b 	out dx, al	mov dx, IO7 + 2; 写 操作命令控制字	mov al, 11h	out dx, al	mov dx, IO7; 写数据	mov cx, 0fffho1:	mov al, [di]	out dx, al	inc di	loop o1	pop cx	pop dx	pop ax		popf	retM8251 endp; 并行 8255, IO6M8255 proc	pushf	push dx	push ax	mov dx, IO6 + 6; 控制寄存器, 	mov al, 10000000b; 端口A, B, C 全部输出	out dx, al	mov dx, IO6; 端口A	mov al, 3	out dx, al	pop ax	pop dx	popf		retM8255 endp; 时钟 8253, IO5M8253 proc	pushf	push dx	push ax	mov dx, IO5 + 6; 控制寄存器	mov al, 00010110b; 通道0 计数器低字节 方式0	;mov al, 00110100b; 通道0 计数器低字节 方式0	out dx, al	mov dx, IO5; 通道0	mov al, 0ffh	out dx, al	pop ax	pop dx	popf	retM8253 endp; 数码管实验 IO2LED proc	push dx	push ax	mov dx, IO2	mov al, 0LEDL:	inc al	out dx, al	jmp LEDL	pop ax	pop dx	popf	retLED endpint0 proc	cli	call M8255	sti	iretint0 endp; DAC0832 实验 IO3DAC	proc	push dx	push ax	push cx	mov dx, IO3	mov al, 0h	mov cx, 0ffhDACL1:	inc al	out dx, al	call delay	loop DACL1	mov cx, 0ffhDACL2:	dec al	out dx, al	call delay	loop DACL2	pop cx	pop ax	pop dx	popf	retDAC endp; ADC0808 实验IO4, proteus 不具备ADC0809仿真能力,用0808替换ADC0808 proc	push ax	push dx	mov dx, IO4	mov al, 12h	out dx, al	call delay 	in al, dx	pop dx	pop ax	popf	retADC0808 endp; 延迟程序delay:	pushf	push cx	mov cx, 0ffhn:	loop n	pop cx	popf	retcode endsend start

你可能感兴趣的文章
拥有10年编程经验的你,为什么还一直停留在原地
查看>>
Flask vs Django,Python Web开发用哪个框架更好
查看>>
用Python制作动态二维码,一行代码就做到了
查看>>
Python说:常见的数据分析库有哪些
查看>>
Python教程:Python数据类型之字典
查看>>
Python基础教程:python的数据类型
查看>>
Python学习教程:另辟蹊径,appium抓取app应用数据了解一下
查看>>
周董新歌《说好不哭》上线,20W评论,歌迷都说了些啥
查看>>
Python学习教程:用Python进行金融市场文本数据的情感计算
查看>>
Python爬虫:python获取各种街拍美图
查看>>
爬虫工程师是干什么的?你真的知道吗?
查看>>
写给那些想学Python的人,建议收藏后细看
查看>>
数据全裸时代,你的隐私有多容易获取?
查看>>
分析http代理报错问题
查看>>
Python编程学习笔记 - 列表的各种姿势
查看>>
Python学习教程:Python入门笔记整理
查看>>
天了噜,居然用Python查到了女神的姓名
查看>>
常用排序算法总结
查看>>
Java输入输出
查看>>
MSSQL数据库常见问题
查看>>