Proteus中8259的仿真[无dos,纯手工]
因为研究生复试的需要所以最近折腾了下8086的汇编,
不过proteus总是没有我预期的完美[可能也跟和谐的版本有关]
下面是折腾8259的一些总结,不过有一些问题,希望知道的能予以指正
电路搭建,基于自带的例子 (原文件名:8259_1.png)
程序源码 (原文件名:8259_2.png)
断点设置 (原文件名:8259_3.png)
仿真1 (原文件名:8259_4.png)
仿真2 (原文件名:8259_5.png)
另外,一些问题罗列如下
-.我用的老王的77sp2和谐,不过逻辑仿真器貌似用不了啊
-.8259模型需要改一下[加几个字符]才能用于仿真
0.一开始会莫名其妙的产生一个终端,一般位于前16字节,所以我的程序在那里也设置了捕获的proc,要不然会跑飞,不知为何
1.下一次触发时才会相应正确的中断,而当前相应的为上一次的?不过Simulation Log里的信息倒是正确的
2.级联模式,次级的irr不会自动清除,至少我觉的应该自动清除的,导致响应时会被进制,当然可能是我程序的问题
3.软件触发的中断没问题,直接int xx出来的中断都可以正确的响应,个人感觉要么是我程序的问题,要么是8259模型的问题
4.Proteus中仿真用exe和com格式的都可以,我的程序是使用masm的,顺带试了下mingw套件里的gas汇编,com格式输出时也是可以的
不过没法调试,即使-gstabs加上了也不行.
*.上面的问题可能是本人程序上的错误,希望熟悉8086汇编的人能指正一下
工程文件ourdev_623172B3W6H8.rar(文件大小:32K) (原文件名:8086 Demo Board.rar) [放在ourdev上了]
源程序
.MODEL SMALLio8259_main_addr equ 0600H io8259_sub_addr equ 0800H .8086 .codeio8259_std1_init macro base,icw1_val,icw2_val,icw4_valmov dx,basemov al,icw1_val out dx,almov dx,base+2mov al,icw2_valout dx,almov al,icw4_valout dx,alendmio8259_std_init macro base,icw1_val,icw2_val,icw3_val,icw4_valmov dx,basemov al,icw1_val out dx,almov dx,base+2mov al,icw2_valout dx,almov al,icw3_valout dx,almov al,icw4_valout dx,alendmsetup_int macro int_irq,int_cs,int_ippush dipush dsmov di,0mov ds,dimov di,(int_irq)*4mov word ptr ds:[di],int_ipmov word ptr ds:[di+2],int_cspop dspop diendmsetup_ints macro int_irq,int_cs,int_ipsetup_int int_irq,int_cs,int_ipsetup_int (int_irq+1),int_cs,int_ipsetup_int (int_irq+2),int_cs,int_ipsetup_int (int_irq+3),int_cs,int_ipsetup_int (int_irq+4),int_cs,int_ipsetup_int (int_irq+5),int_cs,int_ipsetup_int (int_irq+6),int_cs,int_ipsetup_int (int_irq+7),int_cs,int_ipendmintxx proc fariretintxx endpintl1 proc fariretintl1 endpintl2 proc fariretintl2 endpintl1_s proc fariretintl1_s endpintl2_s proc fariretintl2_s endp.startupclisetup_ints 00h,seg intxx,offset intxxsetup_ints 08h,seg intxx,offset intxxsetup_ints 10h,seg intxx,offset intxxsetup_ints 18h,seg intxx,offset intxxsetup_int 30h,seg intl1,offset intl1setup_int 31h,seg intl2,offset intl2setup_int 40h,seg intl1_s,offset intl1_ssetup_int 41h,seg intl2_s,offset intl2_smain:io8259_std_init io8259_main_addr,\ 11h,30h,04h,13h;io8259_std1_init io8259_main_addr,\ ;13h,30h,03hslave:io8259_std_init io8259_sub_addr,\ 11h,40h,02h,03hstijmp $.data .stack END
编译链接选项[masm] ml /c /Zd /Zi sample.asm link16 /CODEVIEW sample.obj,sample.exe,,,nul.def
转载于:https://www.cnblogs.com/pingf/archive/2011/03/17/1986667.html
Proteus中8259的仿真[无dos,纯手工]相关推荐
- proteus中仿真arduino控制L298实现电机正反转
前面几篇博文,我们基本了解了几种在proteus中实现arduino仿真的方法(<proteus从开发板新建arduino仿真项目实例><Proteus Visual Designe ...
- proteus中仿真arduino驱动模拟器件(蜂鸣器继电器电机)
模拟器件如蜂鸣器.继电器.直流电机等在arduino电路中,如果我们接在数字管脚上来驱动往往可能因为驱动电流不够而达不到预期效果,或者没有动作或者没有动静.这篇博文我们专门来讨论一下如何驱动他们. 文 ...
- 在proteus中的排阻的查找_排阻在proteus中怎么找
排阻概要 排阻(NetworkResistor),即网络电阻器(Wire-woundResistor).排阻是将若干个参数完全相同的电阻集中封装在一起,组合制成的.它们的一个引脚都连到一起,作为公共引 ...
- 【沧海拾昧】Keil uVision5新建stm32工程并联合Proteus 8 Professional简单仿真
#C0101 沧海茫茫千钟粟,且拾吾昧一微尘 --<沧海拾昧集>@CuPhoenix [阅前敬告] 沧海拾昧集仅做个人学习笔记之用,所述内容不专业不严谨不成体系 如有问题必是本集记录有谬, ...
- proteus矩阵按键计算机,基于proteus的51单片机仿真实例八十二、4X4矩阵键盘应用实例...
1.矩阵键盘的工作原理: 1)接口电路:在单片机系统中,当按键数量较多时,为了减少IO口的使用,通常将按键排列成矩阵型式,例如本例中的16个按键,被排列成了如下图所示的4X4矩阵方式.即由4根行线和4 ...
- 膨胀的计算机仿真,制冷空调中的计算机仿真与控制
<制冷空调中的计算机仿真与控制>由会员分享,可在线阅读,更多相关<制冷空调中的计算机仿真与控制(145页珍藏版)>请在人人文库网上搜索. 1.第5章 制冷空调中的计算机仿真与控 ...
- HTML5+WebGL打造的无插件纯Web 3D机房(第二季新增视频)
2019独角兽企业重金招聘Python工程师标准>>> 前情提要 前阵子写了一篇HTML5打造的无插件纯web 3D机房,介绍了如何用html5在网页上创建无插件的精美3d机房场景. ...
- 无插件纯Web HTML5 3D机房 进阶篇(新增设备、线缆、巡查等功能)
前情提要 前阵子写了一篇无插件纯Web 3D机房,介绍了如何用html5在网页上创建无插件的精美3d机房场景.这两个月以来,陆续收到很多朋友的鼓(膝)励(盖),受宠若惊之余,对索要源代码的朋友都已经尽 ...
- 基于proteus的51单片机仿真实例五十七、定时器/计数器T0的定时实例
1.本例使用定时器T0的定时中断来控制P1.0端口的LED闪烁,定时周期为100MS,LED点亮50MS,熄灭50ms. 2.实现方法:首先将定时器设置为定时方式,然后选择工作方式,在使用定时中断前要 ...
- Proteus中的继电器在哪里
今天做仿真时候,用到了继电器,但是电路搭建好后发现怎么继电器上电不动作,发现是继电器选错了,然后找了一个最常用的继电器来用一试成功. 所以就分享一下Proteus中的继电器在哪里? 如图所示,我们先点 ...
最新文章
- 【机器学习】基于自适应变异粒子群算法的非线性函数寻优
- 在MySQL中的特定列之后添加多个列
- 自定义Scrollview--实现仿淘宝Toolbar透明度渐变效果
- 保存处理后的视频文件
- scala 数据类型体系一览图
- poj3070 Fibonacci 矩阵快速幂
- 理解依赖注入(IOC)
- append()与extend()
- Hadoop的伪分布安装 hadoop的核心思想
- IBM PowerAI编程大赛Q2场来袭!探秘金融语料大数据识别
- 2021华为杯D题第一题完整代码
- Linux内核配置文件
- 丽台显卡测试软件,领先A卡62% 丽台7系显卡对比测试
- 汉诺塔(the Tower of Hanoi )
- iphone 投屏到android,苹果安卓手机投屏之(二)——音频文件在电视上播放
- 做一个成功的软件项目经理
- 11.elasticsearch认证考试总结
- git stats生成html不显示,性能 – JMeter:生成Taurus无法生成的默认html报告
- OceanBase简史
- 我的关联规则读数目录
热门文章
- html5特性检测,HTML5 简介(七):在线检测、contenteditable、classList 等特性介绍
- 太极发送卡片软件_太极APP的入门级使用方法
- java如何对单词排序_java - 如何按第二个单词对列表进行排序? [重复] - SO中文参考 - www.soinside.com...
- java 计划任务_Java实现定时任务的几种方案
- 自动驾驶 4-1 二维运动学建模Kinematic Modeling in 2D
- python字节码解析_简单入门python字节码混淆
- php禁言时间开发,一起来捉妖禁言时间介绍_教程一览
- 1193, Unknown system variable 'tx_isolation'
- 深度学习之四大经典CNN技术浅析
- 【ECG理论篇】(2)AI实现心律失常判别:心电数据预处理