[30天自制操作系统] 02 汇编语言学习与Markfile入门
00. 寄存器16位寄存器
12345678AX —— accumulator,累加寄存器 CX —— counter,计数寄存器 DX —— data,数据寄存器 BX —— base,基址寄存器 SP —— stack pointer,栈指针寄存器 BP —— base pointer,基址指针寄存器 SI —— source index,源变址寄存器 DI —— destination index,目的变址寄存器
8位寄存器
1234567AL —— 累加寄存器低位(accumulator low) CL —— 计数寄存器低位(counter low) DL —— 数据寄存器低位(data low) BL —— 基址寄存器低位(base low) AH —— 累加寄存器高位(accumulator high) CH —— 计数寄存器高位(counter high) DH —— 数据寄存器高位(data high)
32 位寄存器
EAX, ECX, EDX, EBX, ESP, EBP, ESI, EDI
段寄存器
123456ES——附加段寄存器(extra segmen ...
01 从计算机结构到汇编程序入门
00. 准备
光盘源码&程序:https://wwaq.lanzouq.com/ikBJg1702eid
二进制编辑器:https://wwaq.lanzouq.com/iCgti1702oje
01 .二进制编辑器在Bz - c.mos (vcraft.jp)下载,解压使用Bz1621.lzh,双击Bz.exe打开二进制编辑器
输入:0到168000行
1234567891011121314151617 +0 +1 +2 +3 +4 +5 +6 +7 +8 +9 +A +B +C +D +E +F0000:0000 EB 4E 90 48 45 4C 4C 4F 49 50 4C 00 02 01 01 000000:0010 02 E0 00 40 0B F0 09 00 12 00 02 00 00 00 00 000000:0020 40 0B 00 00 00 00 29 FF FF FF FF 48 45 4C 4C 4F0000:0030 2D 4F 53 20 20 20 46 41 54 31 32 20 20 20 00 000 ...
ES6解构赋值
转载文章:ES6 解构赋值入门视频:快速入坑 ES6(3):变量解构赋值与应用场景
前面的话我们经常定义许多对象和数组,然后有组织地从中提取相关的信息片段。在 ES6 中添加了可以简化这种任务的新特性:解构。解构是一种打破数据结构,将其拆分为更小部分的过程。本文将详细介绍 ES6 解构赋值。解构赋值应用:有函数参数、函数返回值、变量互换、JSON 应用、Ajax 请求应用等。比如说 axios 应用:
12//从axios返回的对象结构的数据中去除data属性,并将其改名为resconst { data: res } = await this.$axios.get("url");
引入在 ES5 中,开发者们为了从对象和数组中获取特定数据并赋值给变量,编写了许多看起来同质化的代码
1234567let options = { repeat: true, save: false,};// 从对象中提取数据let repeat = options.repeat, save = options.save;
这段代码从 op ...
mklink-链接iCloud&OneDrive文件夹
#mklink创建符号链接。
12345678910MKLINK [[/D] | [/H] | [/J]] Link Target /D 创建目录符号链接。默认为文件 符号链接。 /H 创建硬链接而非符号链接。 /J 创建目录联接。 Link 指定新的符号链接名称。 Target 指定新链接引用的路径 (相对或绝对)。
将C:\Users\iCloudDrive\iCloud~md~obsidian\myku链接到E:\OneDrive\Notebooks\Obsidian\myku 命令如下:
1C:\Users\20294>mklink /d "E:\OneDrive\Notebooks\Obsidian\myku" "C:\Users\iCloudDrive\iCloud~md~obsidian\myku"
使用命令行编译java
使用命令行编译 java编译单个文件在当前目录下的命令行输入:12javac xxx.javajava xxx
编译成功,输出结果。
如果 出现“编码 GBK 的不可映射字符”的错误,原因是,系统默认的编码格式与源文件编码格式不同,编译时没有显式指定源文件编码格式的话,JDK 会把源文件从系统默认编码格式转换为 Java 默认编码格式,这样就出现乱码了。
解决命令:1javac -encoding utf-8 xxx.java
编译运行含 package 语句的类文件如下:12- Point.java- TestPoint.java
内容:Point.java123456package com.company;public class Point { private int X; private int Y;......省略
TestPoint.java1234567package com.company;import com.company.Point;public class TestPoint { public static vo ...
如何给查询出的SQL记录添加序号列
title: 如何给查询出的 SQL 记录添加序号列 tags: “SQL”如何给查询出的 SQL 记录添加序号列给查询出的 SQL 记录添加序号列,解决方法有以下两种
第一:
1select ROW_NUMBER() OVER (ORDER BY a.字段 ASC) AS XUHAO,a.* from table a
(table 为表名,字段为表 a 中的字段名)
第二:
1select RANK() OVER (ORDER BY a.字段 ASC) AS XUHAO,a.* from table a
(table 为表名,字段为表 a 中的字段名)
平衡二叉树&二叉排序树
平衡二叉树&二叉排序树算法库:1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961 ...
排序算法
排序算法一、算法库下面
二、大数据集上排序算法性能的体验请在给出的参考算法中,用给出的测试数据来测试排序算法运行时间的程序。写成一个主程序调用各排序函数,查看每次排序的结果,并给出各种排序方法的排序时间比较。观察输出结果。得到对复杂度不同的各种算法在运行时间方面的感性认识。本项目旨在获得对于复杂度不同算法的感性认识,由于数据分布特点、计算机运行状态等不同,其结果并不能完全代替对算法复杂度的理论分析
123提示1:这一项目需要整合多种排序算法,可以考虑先建设排序算法库,作为我们这门课算法库的收官之作; 提示2:本项目旨在获得对于复杂度不同算法的感性认识,由于数据分布特点、计算机运行状态等不同,其结果并不能完全代替对算法复杂度的理论分析; 提示3:由于C语言标准提供的时间函数只精确到秒,几种O(nlog2n)级别的算法,在5万条记录的压力下,并不能明显地看出优劣,可以忽略直接插入排序、冒泡排序、直接选择排序这三种相对低效率的算法(以节约时间。若能够忍受他们长时间地运行,请自便),成10倍地加大数据量,然后进行观察。
1.测试用的主控程序——main.cpp1234567891011121 ...
排序二叉树
排序二叉树1 分部1.1 头文件以及宏定义1234567#include <stdio.h>#include <stdlib.h>#include <string.h>#include <assert.h>#include <time.h>#define TREE_TYPE int
1. 2 结构体 TREE_NODE 定义1234567typedef struct TREE_NODE { TREE_TYPE value; struct TREE_NODE *left; struct TREE_NODE *right;}TreeNode;static TreeNode *tree = NULL;
1.3 insert 插入1234567891011121314151617181920212223void insert(TREE_TYPE value){ TreeNode *current; TreeNode **link; link = &tree; ...
宝塔面板强制安装MySQL8.0
宝塔面板强制安装 MySQL8.0mysql 终于更新到 8.0,MySQL8.0 对比以往的版本有了很大的提升,但是要求的服务器配置也就变得越来越高。对于低配置服务器,在宝塔面板进行安装时,总会出现“至少需要 2 个 CPU 核心才能安装”或者“至少需要 XXX 内存才能安装”。但我们又想要体验 MySQL8.0 新版本,这时候该怎么办呢?只有强制在宝塔面板中安装 MySQL8.0。
低配置服务器在宝塔面板中安装 MySQL8.0 方法远程连接到服务器中,进入/www/server/panel/install 并执行下面代码。
编译安装 MySQL8.0,请在远程控制台中输入下面脚本:
12wget http://download.bt.cn/install/0/mysql.sh;bash mysql.sh install 5.7
极速安装 MySQL8.0,请在远程控制台中输入下面脚本
12wget http://download.bt.cn/install/1/mysql.sh;bash mysql.sh install 5.7
将 5 ...