DOS编程:8086汇编语言基础知识

今天我们就开始学习有关汇编的相关知识了,感觉和之前学的STM32相类似,所以学习起来并没有感觉很困难,相反,感觉有点好玩,并且理解了底层原理,为等下学习计算机组成原理打下基础,然后笔记主要用来记录不清楚的知识点,怕自己等过会就忘记了。参考书籍是王爽老师的书。

DOS编程:DOSBox环境配置与调试

本篇主要用来介绍我们的实验平台——DOSBox的使用与调试,主要就是改一下窗口大小以及挂载,并且作为学习汇编实验的汇总,不定期更新。

下载与安装

这个可以到官网去下载,然后安装也很简单,就不介绍了

STC51单片机中断介绍

1.关于51单片机的介绍

总体介绍:

51单片机是对所有兼容Intel 8051指令系统的单片机的统称。该系列单片机的始祖是Intel的8004单片机,后来随着Flash rom技术的发展,8004单片机取得了长足的进展,成为应用最广泛的8位单片机之一,其代表型号是ATMEL公司的AT89系列,它广泛应用于工业测控系统之中。很多公司都有51系列的兼容机型推出,今后很长的一段时间内将占有大量市场。51单片机是基础入门的一个单片机,还是应用最广泛的一种。需要注意的是51系列的单片机一般不具备自编程能力。

DOS编程:图形显示高速算法与优化技巧

1.利用位移计算乘法

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
int count_offest(int _width,int x,int y) //移位乘法计算显示偏移值
{
 int mode[17]={1,2,4,8,16,32,64,128,256,512,1024,2048,4096,8192,16384,32768,65536};
 int i,offest=0;
 for (i=16;i>=0;i--)
 {
  if (_width>=mode[i])
  {
   offest+=(y<<i);
   _width-=mode[i];
   if (_width<1) break;
  }
 }
 return(offest+x);
}

2.高速绘制点(不用乘法)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void point(int x,int y,unsigned char color) //高速画点
{
 if ((color!=NO_COLOR)&&
  (x>=0)&&(x<SCR_H)&&
  (y>=0)&&(y<SCR_V))
 {
  #ifdef VESA_320_200
  *(buffer+(y<<8)+(y<<6)+x)=color;
  #endif
  #ifdef VESA_640_480
  *(buffer+(y<<9)+(y<<7)+x)=color;
  #endif
  #ifdef VESA_800_600
  *(buffer+(y<<9)+(y<<8)+(y<<5)+x)=color;
  #endif
  #ifdef VESA_1024_768
  *(buffer+(y<<10)+x)=color;
  #endif
  #ifdef VESA_1280_1024
  *(buffer+(y<<10)+(y<<8)+x)=color;
  #endif
 }
}

3.镂空算法

镂空算法很多,用的都是AND MASK+OR方式,不要去理它,每一个点要处理两遍,包含三次

使用golang搭建响应快速的博客系统

前一段时间想对博客系统进行一次大面积更新,因为原有 Nodejs 后台很多地方做的不好,无论从设计上还是编码结构上都没有达到我想要的效果。所以国庆节前就开始着手对新系统进行设计,经过几天的重构修改,前台部分第一版已经完成,后续还会继续优化。

MiSTer 远程控制

我第一次发现这个惊人的MiSTer项目是通过SmokeMonsterRetroRGB上的帖子,我的好奇心让我变得更好 - 我必须有一个可以玩的东西。Racketboy 对 MiSTer 写了一篇很好的概述和介绍——我建议您阅读它以帮助您确定该项目是否适合您。

无论如何,因为我经常玩并尝试不同的游戏手柄,所以我发现自己需要经常使用键盘来按 F12、Space 和 Esc。我的小型无线罗技键盘使用起来很尴尬,因为我需要按住 FN 和另一个键才能获得 F12,而且我的手不够大。

UBOOT 启动流程

一、概述

uboot 的启动流程在网上有很多大佬记录,但是了对于像我这样的新手就有些困难了,而我也不做 uboot 相关的工作,所以没必去研究代码,这里我特意整理了一下,以流程图的形式展现代码执行的流程,方便快速了解 uboot 是怎么启动的,此笔记就不进行代码分析了,主要记录 uboot 启动流程中所执行的函数已经函数所在的文件,需要了解函数中的代码实现,可以结合 uboot 源码和正点原子的开发手册或者其他博客。

Linux Framebuffer 实验

一、准备

  1. linux虚拟机或ARM开发板
  2. Ubuntu18.04

二、Framebuffer介绍

次笔记主要的目的是实验,所以我不介绍了,有需要的小伙伴可以去看下面博客 Linux LCD Frambuffer 基础介绍和使用:https://blog.51cto.com/u_13064014/5079683 Linux应用开发【第一章】Framebuffer应用开发:https://zhuanlan.zhihu.com/p/443120506 Linux Framebuffer 技术:https://zhuanlan.zhihu.com/p/496623603 为了能直观的看明白 Framebuffer 的原理,所以我从他们博客中引用了几张图片,如下所示: