汇编 | loop和[bx]指令解析篇

编译运行过程编程 :asm编译:obj连接:exe加载内存中的程序运行DS寄存器是存的是程序段地址,IP是程序偏移地址,DS:IP是程序起点,程序前面先创建PSP(256字节)(程序段前缀)的数据区,DOS利用PSP和加载的程序进行通信,256字节后为程序区。CS:IP是程序入口,存在程序区。 inc bx是bx中的内容加1 注意点:在cx中存放循环的次数loop指令中的标号所标识地址要在前面要循

- 阅读全文 -

汇编 | 入门代码篇

assume 寄存器:段名 ;将寄存器和代码段联系一起 段名 segment ;一个段的开始 ... ... 段名 ends ;一个段的结束 mov ax,4c00H ;程序返回 int 21H end

- 阅读全文 -

汇编 | 认识DosBox篇

执行DosBox将debug.exe的物理路径D:/DosBox-0.47定义为DosBox的C盘mount C D:/DosBox-0.74(bedug.exe的存放路径)访问C盘C:运行debug文件debug命令参数-R查看、改变所有寄存器内容,注意:CS:IP(073F:0100)处存放的机器码是0000,对应的汇编指令是ADD [BX+SI],AL -R AX(改变AX寄存器的值,直接在

- 阅读全文 -

单片机 | STM32F429IGT6启动文件解析及示例代码

编程步骤开GPIO端口时钟(RCC AHB1 外设时钟使能寄存器 (RCC_AHB1ENR))要先确定引脚号要确定是输入还是输出如果是输出,那么是推挽还是开漏输出 OTYPER确定是上拉还是下拉那么输出速度是多少呢?配置IO(LED)void GPIO_LED_Config(void) { GPIO_InitTypeDef GPIO_InitStruct; //打开LED_GPI

- 阅读全文 -

单片机 | STM32F429IGT6引脚分类解析

FT:5V容忍IOTTa:3.3V容忍IO,连接ADC(模数转化)GPIO默认是普通IO,要想复用其他功能,就得自行配置;保护二极管:容忍5V,保护芯片(VDD_FT VSS)上下拉电阻:GPIO默认是浮空状态(1.5V 不稳定)(除了pA15上拉、pA14下拉、pA13上拉、pB4上拉)注意:GPIOI只有0-11端口,只有12个引脚STM32F429IGT6引脚分类电源:(VBAT)、(VD

- 阅读全文 -

单片机 | STM32F429IGT6芯片详细解析

总线I总线是指令总线 S总线是系统总线 D总线是数据总线 地址地址空间:2的32次方(寻址4GB空间),分成8个Block(0-7),每个512MB 存储器Block0 SRAM(Flash) STM32429IGT6 flash可用1MB 0x0000 0000-0x1FFF FFFF(512MB) Block1 SRAM 存储数据,变量(256KB)(分成三部分)

- 阅读全文 -

单片机 | 51单片机中断、寄存器、定时器和PWM原理

下面是我大一在某某群分享的关于51单片机的内容。大家晚上好,我分享的内容大体是先介绍中断,各寄存器使用(可能这里有点啰嗦),然后就简单写一下定时器,然后PWM原理,以及它的配置和使用。大概今晚就这样了,如果有什么错的,或有什么疑问,请大家马上提出来,共同进步。中断:当计算机执行正常程序时,系统中出现某些急需处理的异常情况和特殊请求.中断的执行:当CPU正在执行某一程序时,若有中断响应,则CPU转而

- 阅读全文 -

算法 | 编程实现各种排序算法,并对比各种算法的效率

【设计要求】:在给出的代码素材sort.cpp文件中补充main函数中的swtich语句,以及以下排序函数,并比较各种排序方法在对素材文件中的1.data~5.data待排序序列进行排序时所需要的时间。void shellsort(int data[], int n);//希尔排序 void bubllesort(int data[], int n);//冒泡排序 void quicksort

- 阅读全文 -

算法 | 求解约瑟夫环问题(循环单链表)

问题利用循环单链表求解约瑟夫环问题(即n个人围成一个圆圈,然后从第一个人开始,按:1,2,3,…,m报数,数到m的人出圈,并有出圈者的下一个人重新开始报数,数到m又要出圈,如此类推,直到所有人都出圈,打印出圈的次序,其中n和m为输入数据)测试用例 输入 9 3 输出 3,6,9,4,8,5,2,7,1代码实现#include <stdio.h> #include <stdli

- 阅读全文 -