- 博客(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
515
原创 按下字母改变屏幕颜色
r:红色 g:绿色 b:蓝色 assume cs:code code segment start: ;调用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
404
原创 改写中断例程小实验
1.安装一个新的int9中断例程 2.在DOS下,按f1改变屏幕颜色,其它键不变 assume cs:code,ss:stk stk segment db 128 dup (0) stk ends code segment start: 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
435
原创 定制键盘输入处理
在屏幕上显示a-z,按下esc时变色 assume cs:code,ds:data,ss:stk data segment dw 0,0 data ends stk segment db 123 dup (0) stk ends code segment start: 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
300
原创 汇编题 实现清屏,前景变色,背景变色,滚动一行
; 1.清屏 ; 2.前景变色 ; 3.背景变色 ; 4.滚动一行 assume cs:code code segment start: mov ah,1 ;功能号 mov al,1001b ;颜色选项 call text mov ax,4c00h int 21h text: jmp short srt num dw sub1,sub2,sub3,sub4 srt: push bx cmp ah,3 ja to mov bl,ah mov bh,0 add bx,b.
2021-12-09 16:26:55
579
原创 编制中断处理程序
assume cs:code code segment start: ;安装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
165
原创 hello world
data segment db 'hello world' data ends code segment start: 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
122
原创 汇编语言(王爽 )(第四版)实验11
assume cs:code,ds:data data segment db "Bwginner's All-purpose Symbolic Instruction Cdoe.",0 data ends code segment begin: 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
1053
原创 c与汇编处理方式的对比
在这一段程序中: assume cs:code,ds:data data segment db 'abc' dw 1 dw 2 data ends code segment start: 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
128
原创 逆序存放、大小写转换与C中嵌入汇编
逆序存放: assume cs:code,ds:data,ss:stk data segment dw 0123h,0456h,0789h data ends stk segment dw 0,0,0,0,0,0 stk ends code segment start: mov ax,data mov ds,ax mov ax,stk mov ss,ax mov sp,000ch ...
2021-12-01 15:28:36
744
原创 非常详细的单链表
头文件 #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
346
原创 非常详细的顺序表(c)
头文件 #pragma once #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> #include<stdlib.h> #include<assert.h> #include<string.h> #define INIT 4 typedef int DataType; struct str { DataType* a; int size; int quantity; }s; void Seqil
2021-11-12 20:07:03
796
原创 c语言 浅谈流
流:高度抽象的概念 当我们写一个程序,但不同的程序我们可能想写到不同的地方 这就麻烦了,我就一普通写代码的,还要我去学这么多交互?所以为了方便,我们抽象一个层 我们只需要把数据放到流里面,由流写入外部设备就可以了 那流是怎么实现的呢 咱也就知道是编译器干的这档子事。 c语言程序只要运行起来,就默认打开了三个流(都为FILE *型) 1.stdin(标准输入流)——键盘 2.stdout(标准输出流)——屏幕 3.stderr(标准错误流)——屏幕 举个例子: #...
2021-11-09 22:05:45
1866
1
原创 c语言 关于柔性数组在内存中的优势(C99,VS2019)
首先我们知道,在c/c++中内存区域的划分 (画的真丑) 一般定义的变量在栈中,动态内存分配(malloc,calloc,realloc)在堆中,static修饰的变量存放在静态库中。 接下来先简单看一下柔性数组: 1.结构中的柔性数组成员前面必须至少一个其他成员 2.sizeof返回的这种结构大小不包括柔性数组内存 3.包含柔性数组成员的结构用malloc()函数进行内存的动态分配,并且分配的内存应该大于结构的大小,以适应柔性数组的预期大小 三句话看起来有点长但其实举个例子很好理解,话.
2021-11-07 20:54:39
1107
原创 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
389
原创 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
732
原创 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
279
原创 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
192
原创 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
139
原创 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
218
原创 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
179
原创 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
131
原创 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
152
原创 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
117
空空如也
汇编语言:sub2和sub3无效
2021-12-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅