海外贸易网站百度seo插件
机器指令 CPU 已经有了样子,现在开始汇编器制造,
机器指令详情视频
由隔壁操作系统意外发现,看到OUT %AL, %BX 指令, 怀疑寄存器直连地址线,意外追出新显示器内存,实现字符输出,并在视频最后改数字实现左右滚动跑马_哔哩哔哩_bilibili
input.txt
sces scssvw 324tr34 snviwnecmqoin 32rni .org 0x33mov %ax,%bx
字符分割
// 可执行文件字符转码为 UTF-8, 对应txt字符是 UTF-8
// ANSI 对应课程作业,对应txt 文本字符是 ANSI
// cmd 窗口打印中文 ANSI格式
#include <stdio.h>
#include <string.h>
#include <malloc.h>FILE* fp, *fa2;
int lenth = 10000;
char* str = new char[200]; // 循环读取文件,分200字节读取
char** cmd = new char*[lenth]; // 词元存储
int cnt = 0; // 分割词元个数void init() {fp = fopen("input.txt", "r");fa2 = fopen("output.txt", "w"); // 发现命令中有文件输出,所以之前需要开启文件for (int i = 0; i < lenth; i++) {cmd[i] = new char[200];}for (int i = 0; i < lenth; i++) {for (int j = 0; j < 200; j++) {cmd[i][j] = '\0';}}
// printf("end\n");
}void split() {char *p;int num = 0;// 分割词语while (fgets(str, 200, fp) != NULL) {p = str;// 处理回车,有些回车读取会影响代码结果if (str[0] == '\n' && strlen(str) == 1) {
// printf("发现回车\n");continue;} else if (str[strlen(str) - 1 ] == '\n') {
// 发现文末回车
// printf("发现文末回车\n");str[strlen(str) - 1 ] = '\0';}// 按空格分割字符while (*p != '\0') {
// printf("%c\n", *p);if (*p == ' ' || *p == '\n') {if (num != 0) {cnt++;num = 0;}} else {cmd[cnt][num] = *p;num++;}p++;}// 如果临时存储区字符不为0,说明还有分割字符,此时// 恰好是最后一行时,或者到一行末尾了if (*p == '\0') {if (num != 0) {cnt++;num = 0;}}}}int main() {init();split();for (int i = 0; i < cnt; i++) {printf("%s\n", cmd[i]);}return 0;
}