![](https://img-blog.csdnimg.cn/20201014180756724.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
编程语言
等月亮的人
希望余生的每一天,身体和思想都在路上
展开
-
汇编语言(一)
(一)概述1.在内存或磁盘上,指令和数据没有任何区别,都是二进制信息。2.存储器被划分为若干的存储单元。,每个存储单元从0开始顺序编号。那么一个存储单元能存储多少信息?我们知道电子计算机的最小信息单位是bit(比特),8个bit组成一个byte(字节)。微型机存储器有128个存储单元,它可以存储128个byte。微型存储器的容量以字节为最小单位计算。(一个题外话:为什么U盘达不到标量?是因为厂家在...原创 2018-06-04 19:33:22 · 268 阅读 · 0 评论 -
汇编语言之CALL和RET指令
欢迎关注博主的公众号:薛定谔的小鱼儿1.ret和retf指令ret指令用栈中的数据,修改IP内容,从而实现近转移retf指令用栈中数据,修改CS和IP的内容,从而实现远转移CPU执行ret指令相当于:pop IPCPU执行retf指令相当于:pop IP pop CS...原创 2018-06-07 16:15:54 · 1671 阅读 · 1 评论 -
汇编语言之loop指令
欢迎关注博主的公众号:薛定谔的小鱼儿loop指令为循环指令,所有的循环指令都是短转移,在对应的机器码中包含转移的位移,而不是目的地址,对IP的修改范围是:-128——127指令格式:loop 标号操作:(1)(cx)=(cx)-1(2)if (cx)!=0 (IP)=(IP)+8位位移实例(利用loop指令实现在内存2000H段中查找第一个值为0的字节,找到后,将它的偏移地址存储在dx中)as...原创 2018-06-07 11:02:08 · 10305 阅读 · 0 评论 -
汇编语言之转移指令
欢迎关注博主的公众号:薛定谔的小鱼儿转移指令:可以修改IP或同时修改CS和IP的指令统称为转移指令。短转移IP的修改范围:-128——127近转移IP的修改范围:-32768——327671.操作符offset操作符offset作用:取得标号的偏移地址例:assume cs:codesgcodesg segment start: mov ax,offset start //相当于 mov ...原创 2018-06-07 10:48:27 · 4089 阅读 · 0 评论 -
C++的引用
引用就相当于变量的别名(一)基本数据类型的相关引用对变量的别名进行操作就等同于对变量进行操作一样,例如:结果输出是:可以看出对别名进行操作就是对变量本身进行操作。(二)结构体类型的引用结果也是如我们所期待的:(三)指针类型的引用首先我们需要了解指针类型引用的定义方法:类型 *&引用名=指针;举个栗子:结果输出:(四)引用作为函数参数栗子为:将引用a和引用b作为函数的形参,实现两个变量数值的...原创 2018-05-31 10:32:00 · 143 阅读 · 0 评论 -
汇编语言之不同的寻址方式
欢迎关注博主的公众号 :薛定谔的小鱼儿[idata]:用一个个常量表示地址[bx]:用一个变量表示地址[bx+idata]:用一个常量和变量表示地址[bx+si]:用两个变量表示地址[bx+si+idata]:用两个变量和一个常量表示地址...原创 2018-06-05 19:49:23 · 440 阅读 · 0 评论 -
汇编语言之大小写转换
欢迎关注博主的公众号:薛定谔的小鱼儿将datasg中的第一个字符转换为大写,第二个字符转换为小写assume cs:codesg,ds:datasgdatasg segment db 'BsSIc' db 'iNFOrMAtiOn'datasg endscodesg segment start: mov ax,datasg mov ds,ax ...原创 2018-06-05 19:15:05 · 2963 阅读 · 0 评论 -
汇编语言之包含多个段的程序
欢迎关注博主的公众号:薛定谔的小鱼儿(一)代码段和数据段同时存在首先我们编写一个程序,将0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h累加并存放在ax中。assume cs:codecode segment dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h start: mov bx...原创 2018-06-05 18:27:51 · 1120 阅读 · 0 评论 -
汇编语言之loop指令
cx中存放的是循环的次数(1)编程计算2^12:assume cs:codecode segmentmov ax,2mov cx,11s:add ax,axloop smov ax,4c00hint 21hcode endsend执行loop s时,首先要将(cx)减1,若(cx)不为0,则前往s处执行add ax,ax(2)计算ffff:0-ffff:b单元中的数据之和,结果存储在dx中。1)分...原创 2018-06-05 08:48:52 · 27420 阅读 · 1 评论 -
debug的使用
(1)debug功能R命令查看,改变CPU寄存器情况D命令查看内存中的内容E命令改写内存中的内容U命令将内存中的机器指令翻译成汇编指令T命令执行一条机器指令A命令以汇编指令格式在内存中写入一条机器指令...原创 2018-06-04 19:36:48 · 437 阅读 · 0 评论 -
C++中的const
(一)const与基本数据类型int x=3; //x是变量,值可以更改const int x=20; //x是常量,值不可以更改(二)const与指针类型const int *p=NULL;等价于int const *p=NULL;举例说明:(1)int x=3;const int *p=&x;p=&y; //正确*p=4; //错误由于const修饰*p,因此可以将p...原创 2018-06-01 09:46:32 · 159 阅读 · 0 评论