深圳鼎盛合科技系芯海一级代理商,代理芯海高精度ADC芯片,SOC芯片,wi代理芯海fi及蓝牙模块
emu8086的起始菜单栏共提供10个最常用的例程(emu8086一共提供了85个例程),这10个例程涵盖 .com 程序结构、MOV指令、算术运算指令、比较、循环指令、函数、中断、变量定义、数组定义、端口操作等,是学习微机原理应该掌握的最基本的编程知识。
打开emu8086就弹出了欢迎对话框,点击“code examples”按钮就可以看到软件推荐的10个最基本的学习例程其中:1_sample.asm (即“Hell0,world”)展示了 int 10h中断(用于设置显示器的文本模式-类似现在的设置屏幕分辨率、和禁用光标闪烁等)、CGA的代理芯海文本视频区的内存布局和直接内存访问、MOV指令、screen外设 以及 int 16h键盘中断(类似C语言学习中的 getchar()函数);
2_sample.asm (即 "add/subtract") 相比前述例程展示了 add、sub、test、jz跳转等指令 以及lo代理芯海op循环和 int 21h中断的ah=2h 打印子中断;该例程也展示了如何打印1个数据的二进制结果;
3_sample.asm (即 "calculate sum") 相比前述例程展示了inc、cmp、call、ret、push、pop等指令和函数、数组等概念;该例程也展示循环中标签的使代理芯海用、(在主程序后)变量的声明、数组的定义、函数的定义、堆栈的操作等重要概念和知识点;尤其注意第90行的call的巧用(实际工程中不建议这么做,这是建立在对函数、堆栈的深刻理解上的剑走偏锋);
深圳鼎盛合科技系芯海一级代理商,代理芯海高精度ADC芯片,SOC芯片,wifi及蓝牙模块
4_sample.asm (即 "compare numbers") 相比前述例程展示了mov、cmp等指令对标志位的影响,在该例程的学习中,要注意观察运行每条指令标志位的变化以及标志位对指令执行流程的影响:
5_sample.asm (即 "binary ,h代理芯海ex and octal values") 相比前述例程展示了 fasm(即emu8086使用的汇编编译器)中2进制、16进制、8进制等数据的表达,以及如何打印2进制结果;
traffic_lights.asm (即 "traffic lights") 相比前述例程展示了通过#st代理芯海art=Traffic_Lights.exe#伪指令打开交通灯外设,int 15h BIOS延时中断, out、jmp指令等,另一种数组的定义方式和数组长度的计算方法 和 equ伪指令的使用,以及 无中止程序的设计和变量的定义,注意该程序无 ret 指令;
palindrome代理芯海.asm (即 "palindrome") 相比前述例程展示了je、jne、jmp等指令的使用,在主程序内进行变量定义的方法,使用 int 21h DOS中断的ah=9h子中断以及相应的字符串的定义,以及双指针的使用;
LED_display_test.asm (即 "LED display test代理芯海") 相比前述例程展示了最简单的IO使用的例程,如何用循环往端口输出数据,以及 hlt指令;stepper_motor.asm (即 "stepper motor") 相比前述例程展示了主程序内多个数组的定义、test、jz、jb等指令以及循环、端口输入输出的使用;
simple_io.asm (即 代理芯海"simple io")简化的端口输入输出的使用例程;通过这10个例程的学习,基本就可以掌握汇编语言编程的基本知识学习编程的一个重要环节就是看别人怎么写程序,正所谓“熟读唐诗三百首,不会吟诗也会吟”
。通过阅读别人的程序,也给大家以后遇到类似的问题提供了参考,是工程专业的学生学习的重要内容。
深圳鼎盛合代理芯海科技系芯海一级代理商,代理芯海高精度ADC芯片,SOC芯片,wifi及蓝牙模块