自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 问答 (1)
  • 收藏
  • 关注

原创 ......

#include <iostream>#include<string>using namespace std;class MyClass{public: MyClass(int a,string b) { one = a; two = b; } bool operator==(MyClass* a) { if (one == (a->one) && two == (a->two)) { return...

2022-01-19 00:29:24 413

原创 按下字母改变屏幕颜色

r:红色g:绿色b:蓝色assume cs:codecode segmentstart: ;调用16号中断0号功能 mov ah,0 int 16h ;识别按键 mov ah,1 cmp al,'r' je red cmp al,'g' je green cmp al,'b' je blue jmp short ret1 ;设置屏幕颜色 red:shl ah,1 green:shl ah,1 blue:mov bx,0b800h mov es,bx

2021-12-14 15:18:28 258

原创 改写中断例程小实验

1.安装一个新的int9中断例程2.在DOS下,按f1改变屏幕颜色,其它键不变assume cs:code,ss:stkstk segment db 128 dup (0)stk endscode segmentstart: mov ax,stk mov ss,ax mov sp,128 mov ax,0 mov es,ax push cs pop ds ;将原中断保存至0:200h push es:[4*9] pop es:[200h] push es:[

2021-12-13 17:59:17 330

原创 定制键盘输入处理

在屏幕上显示a-z,按下esc时变色assume cs:code,ds:data,ss:stkdata segment dw 0,0data endsstk segment db 123 dup (0)stk endscode segmentstart: mov ax,data mov ds,ax mov ax,stk mov ss,ax mov sp,128 mov ax,0 mov es,ax ;改变中断例程地址 push es:[9*4]

2021-12-13 16:42:06 190

原创 汇编题 实现清屏,前景变色,背景变色,滚动一行

; 1.清屏; 2.前景变色; 3.背景变色; 4.滚动一行assume cs:codecode segmentstart: mov ah,1 ;功能号 mov al,1001b ;颜色选项 call text mov ax,4c00h int 21h text: jmp short srt num dw sub1,sub2,sub3,sub4srt: push bx cmp ah,3 ja to mov bl,ah mov bh,0 add bx,b.

2021-12-09 16:26:55 442

原创 编制中断处理程序

assume cs:codecode segmentstart: ;安装do0到0:0200H mov ax,cx mov ds,ax mov si,offset do0 mov ax,0 mov es,ax mov di,0200h mov cx,offset do0-offset do2 cld rep movsb ;设置终端向量表 mov ax,0 mov es,ax mov word ptr es:[0*4],200h mov wo.

2021-12-09 16:10:23 90

原创 hello world

data segment db 'hello world'data endscode segmentstart: mov ax,data mov ds,ax mov si,0 mov ax,0b800h mov es,ax mov di,160*1+0 mov cx,11 s:mov al,ds:[si] mov es:[di],al inc di mov al,10011111b mov es:[di],al inc di inc si loop s .

2021-12-07 14:47:31 62

原创 汇编语言(王爽 )(第四版)实验11

assume cs:code,ds:datadata segment db "Bwginner's All-purpose Symbolic Instruction Cdoe.",0data endscode segmentbegin: mov ax,data mov ds,ax mov si,0 call letterc mov ax,4c00h int 21h letterc: mov al,[si] cmp al,'a' jb s cmp al,'z' .

2021-12-07 09:52:51 878

原创 c与汇编处理方式的对比

在这一段程序中:assume cs:code,ds:datadata segment db 'abc' dw 1 dw 2data endscode segmentstart: mov ax,data mov ds,ax mov bx,0 mov si,0 mov byte ptr [bx+si],'d' inc si mov byte ptr [bx+si],'e' inc si mov byte ptr [bx+si],'f' mov word ptr [

2021-12-01 19:19:58 58

原创 逆序存放、大小写转换与C中嵌入汇编

逆序存放:assume cs:code,ds:data,ss:stkdata segment dw 0123h,0456h,0789hdata endsstk segment dw 0,0,0,0,0,0stk endscode segmentstart: mov ax,data mov ds,ax mov ax,stk mov ss,ax mov sp,000ch ...

2021-12-01 15:28:36 670

原创 非常详细的单链表

头文件#pragma once#include<stdio.h>#include<stdlib.h>#include<assert.h>typedef int ListData;struct List{ ListData num; struct List* next;};void Listpushback(struct List **p,ListData x);//尾插void Listpopback(struct List** p);//

2021-11-19 11:00:34 289

原创 非常详细的顺序表(c)

头文件#pragma once#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<assert.h>#include<string.h>#define INIT 4typedef int DataType;struct str{ DataType* a; int size; int quantity;}s;void Seqil

2021-11-12 20:07:03 710

原创 c语言 浅谈流

流:高度抽象的概念当我们写一个程序,但不同的程序我们可能想写到不同的地方这就麻烦了,我就一普通写代码的,还要我去学这么多交互?所以为了方便,我们抽象一个层我们只需要把数据放到流里面,由流写入外部设备就可以了那流是怎么实现的呢咱也就知道是编译器干的这档子事。c语言程序只要运行起来,就默认打开了三个流(都为FILE *型)1.stdin(标准输入流)——键盘2.stdout(标准输出流)——屏幕3.stderr(标准错误流)——屏幕举个例子:#...

2021-11-09 22:05:45 1623 1

原创 c语言 关于柔性数组在内存中的优势(C99,VS2019)

首先我们知道,在c/c++中内存区域的划分(画的真丑)一般定义的变量在栈中,动态内存分配(malloc,calloc,realloc)在堆中,static修饰的变量存放在静态库中。接下来先简单看一下柔性数组:1.结构中的柔性数组成员前面必须至少一个其他成员2.sizeof返回的这种结构大小不包括柔性数组内存3.包含柔性数组成员的结构用malloc()函数进行内存的动态分配,并且分配的内存应该大于结构的大小,以适应柔性数组的预期大小三句话看起来有点长但其实举个例子很好理解,话.

2021-11-07 20:54:39 943

原创 c语言 实现简易通讯录

头文件#pragma once#define _CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<string.h>#include<stddef.h>#include<stdlib.h>#define Max_name 20#define Max_sex 10#define Max_tele 12#define Max_addr 30#define inc 2#define Max

2021-11-07 10:56:38 292

原创 c语言 结构体大小的计算与位段(vc6.0)

结构体大小的计算一:在没有嵌套的情况下:1.结构体的第一个成员变量放在结构体在内存中存储位置的0偏移处开始2.从第二个成员往后的所有成员,都放在一个对齐数(成员的大小和默认对齐数的较小值)的整数倍的地址处3.结构体的总大小是结构体的所有成员的对齐数中的最大的那个对齐数的整数倍举几个简单的例子:​struct stu{ int a; char b; int c;};/* struct stu[0][1][2][3] | [4][5][6][7] | [8][9][10]

2021-10-30 16:42:54 557

原创 c语言 模拟memset

#include<stdio.h>void *my_memset(void *x,int i,size_t num){ char *p=x; while(num--) { *((char *)x)++=(char)i; } return p;}int main(){ int i=0; int j=0; char *p=NULL; int a[]={1,2,3,4,5,6,7,8,9,10};...

2021-10-28 23:53:03 200

原创 c语言 模拟memcmp

#include<stdio.h>int my_memcmp(const void *x,const void *y,size_t num){ char b=0; while(num--) { b+=*((char *)x)++-*((char *)y)++; //相当于以下代码 /* b+=*(char *)x-*(char *)y; ((char *)x)++;...

2021-10-28 22:35:17 102

原创 c语言 模拟memmove

#include<stdio.h>#include<stddef.h>#include<assert.h>void * my_memmove(void *x,const void *y,size_t num) //定义函数为void * ,返回拷贝之后内存的地址{ void *z=y; // 存储下y的地址,返回时用到 assert(x && y); // 断言 检测合法性(是否为空指针) if(x<y)...

2021-10-28 17:29:37 73

原创 c语言 模拟qsort (结构体)

#include<stdio.h>#include<string.h>struct str{ int num; char name[20];}s[3]={{1,"abe"},{2,"abc"},{3,"abd"}},*p;void swap(void *a,void *b,int width){ int i=0; for(i=0;i<width;i++) { char tmp=*((char*)a); ...

2021-10-27 17:20:18 144

原创 c语言 模拟qsort (字符串)

#include<stdio.h>#include<string.h>void swap(void *a,void *b,int width){ int i=0; for(i=0;i<width;i++) { char tmp=*((char*)a); *((char*)a)=*((char*)b); *((char*)b)=tmp; ((char*)a)++; ((...

2021-10-27 16:14:57 106

原创 c语言 模拟qsort

#include<stdio.h>void swap(void *a,void *b,int width){ int i=0; for(i=0;i<width;i++) { char tmp=*((char*)a); *((char*)a)=*((char*)b); *((char*)b)=tmp; ((char*)a)++; ((char*)b)++; } }...

2021-10-27 16:10:53 73

原创 c语言 模拟memcpy

#include<stdio.h>#include<stddef.h>#include<assert.h>void * my_memcpy(void *x,const void *y,size_t num) //定义函数为void * ,返回拷贝之后内存的地址{ void *z=x; // 存储下x的地址,返回时用到 assert(x && y); // 断言 检测合法性(是否为空指针) while(num--...

2021-10-26 19:29:58 91

原创 C语言 模拟strstr

#include<stdio.h>char * my_strstr(char *a,char *b){ char *cp=a; char *s1; char *s2; while(*cp) { s1=cp; s2=b; while(*s1 && *s2 && (*s1==*s2)) { s1++; ...

2021-10-26 14:57:41 66

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除