2019.1.2

本文回顾了微机原理的关键指令集,包括加减乘除、逻辑运算、移位、控制转移、循环、子程序调用及中断调用指令。深入探讨了子程序的定义过程及简化方法,并介绍了ACM竞赛的准备步骤。

2019.1.2

主要进行了:

1.ACM step1.3.5

2.微机原理复习: ①加法/减法指令(ADD/SUB , ADC/SBB)、乘除法(MUL/DIV , IMUL/IDIV)、十进制调整指令(DAA)

②逻辑运算指令(AND,OR,XOR,NOT,TEST)

③移位指令(SHL/SHR , SAL/SAR , ROL/ROR , RCL/RCR)

④控制转移指令(JZ/JE 利用ZF ,JS , JO , JP/JPE 利用PF , JC/JB/JNAE 利用CF)

⑤循环指令(loop 先cx=cx-1,若cx不为0则转移, jcxz 若cx为0则转移)

⑥子程序调用与返回(call proc 与 call far proc 的区别)

例如 call proc : SP←SP-2,SS:[SP]←IP ,IP ← OFFSET PROC

call far proc : SP←SP-2,SS:[SP]←CS ,CS←SEG PROC
SP←SP-2,SS:[SP]←IP ,IP ←OFFSET PROC

ret: IP←SS:[SP], SP←SP+2

了解子程序的定义过程,以及简化定义的方法(注意int 21h 会改变al寄存器的值,改变后的值就是打印字符的ascll码)

⑦中断调用指令(int) 调用后依次进行(标志入栈,保存返回地址,转中断处理程序)三步操作,IF、TF置0
中断返回指令(iret)调用后依次进行(返回断点,返回标志)

在使用 Vivado 2017.4 打开由 Vivado 2019.1.2 创建的工程文件时,需要注意版本兼容性问题。由于 Vivado 工具的更新可能会引入新的功能或更改项目文件格式,因此低版本工具可能无法直接兼容高版本生成的项目文件。 ### 兼容性与解决方法 Vivado 2017.4 可能无法直接打开 Vivado 2019.1.2 创建的 `.xpr` 项目文件。这是因为 Vivado 的项目文件格式在不同版本之间可能存在不兼容的变化。如果尝试直接打开,通常会提示项目文件是由更高版本创建的,无法加载 [^1]。 #### 解决方案: 1. **在 Vivado 2019.1.2 中导出为可兼容格式** 如果可以访问 Vivado 2019.1.2,建议在该版本中将项目另存为较低版本支持的格式: - 打开项目 - 使用菜单栏中的 `File > Save Project As...` - 在保存对话框中勾选 "Write Synthesized Checkpoint" 或者选择向下兼容选项(如有) 2. **使用 Tcl 脚本重新生成项目** Vivado 支持通过 Tcl 脚本来重建项目结构。可以在 Vivado 2019.1.2 中导出项目的 Tcl 创建脚本: - 在 Tcl Console 中执行 `write_project_tcl -force -use_rel_paths project_recreate.tcl` - 然后在 Vivado 2017.4 中运行该 Tcl 脚本以重建项目 3. **手动迁移设计文件** 若无法访问高版本 Vivado,可手动提取以下内容并导入到 Vivado 2017.4 的新项目中: - HDL 源文件(`.v`, `.vhdl`) - 约束文件(`.xdc`)[^2] - IP 核配置信息(需重新生成 IP) - 综合、实现设置(需手动重新配置) 4. **IP 核兼容性处理** 高版本中生成的 IP 核可能包含低版本不支持的功能。需要检查 IP 并使用 `upgrade_ip` 命令尝试降级,或者在 Vivado 2017.4 中重新创建 IP 核。 --- ### 示例:使用 Tcl 脚本迁移项目 ```tcl # 在 Vivado 2019.1.2 中导出 Tcl 脚本 write_project_tcl -force -use_rel_paths ../project_recreate.tcl # 在 Vivado 2017.4 中执行如下命令以重建项目 source project_recreate.tcl ``` 此方式能够保留大部分项目结构和设置,但仍需验证是否所有特性均被低版本支持。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值