(一) 研究目的 使用C语言编程,我们一定要使用main函数么? (二) 研究过程 1) 最初的程序 首先,我们编写一个不写main函数的C语言程序. 程序如下: 在编译的过程中,没有发现错误.在链接的过程中发现出现的错误如下: 链接时出现Undefined symbol ‘_main’ in module c0s 这样的错误信息,可能main函数与c0s.obj这个文件有关系. 这时我们想,C语言编译之后的文件后缀名是什么?是.obj.那汇编语言编译后的文件名是什么?也是.obj.这两个文件有…
(一) 学习过程: 整个过程分为两个部分: 第一:将TC2.0的环境使用虚拟软盘复制到DOS虚拟机中: 打开WinImage,fileànew,由于TC2.0的环境解压后为2.02M,所以我们在Standard format中选择2.88M. 将TC文件夹放入.保存. 在DOS虚拟机中加载做好的软盘.这时A:\内有TC2.0的所有文件了. 此处援引书中的话: 我们在把一个程序拷贝的一个空的目录后,这个目录下只有这一个程序,然后我们运行它,它可以正确运行,我们就认为这个程序在运行中不需要别的文件.…
;以"年/月/日 时:分:秒"的格式, 显示当前的日期, 时间 assume cs:code code segment main: out 70h,al ;告诉CMOS RAM将要访问的存储单元编号 in al,71h ;从该存储单元中读入数据 mov ah,al shr al,cl add al,30h ;显示的年份的十位的ascii码 and ah,00001111b add ah,30h ;显示的年份的个位的ascii码 mov bx,0b800h mov es,bx *+*],…
一.前言 最近在学习汇编语言,使用的是读者评价非常高的王爽老师写的<汇编语言>(第三版),为了适应现在各个版本的windows操作系统,所以采用VMWare虚拟机来搭建纯DOS环境. 二.需要的工具 VMware-workstation-12.DOS系统镜像文件.汇编编译器masm和连接器link 百度云下载链接:https://pan.baidu.com/s/1gfz4N67 密码:02y1 三.安装VMware-workstation-12 傻瓜式安装,一直点击下一步就可以(虽然网上也可以…
;此乃安装程序 ;功能:将8086cpu中断类型码为0 的中断向量设置为我们编写的中断服务程序入口地址 ;该中断在除法发送溢出的时候产生 assume cs:code code segment main: mov ax,cs mov ds,ax mov si,offset do ;设置ds:si指向源地址 mov es,ax mov di,200h ;设置es:di指向目的地址 mov cx,offset doend - offset do ;"-" 是编译器识别的运算符号,编译器可以…
;名称: letterc ;功能: 将以0为结尾的字符串中的小写字母转变成大写字母 ;参数: ds:si指向字符串首地址 assume cs:code data segment db data ends code segment main: mov ax,data mov ds,ax call letterc mov ax,4c00h int 21h letterc: push ax push ds push si push cx lop: mov cl,[si] jcxz quit cmp c…
实验十 3.数值显示(以下程序附带测试程序) ;名称: dtoc ;功能: 将dword型数据转变为表示十进制数的字符串,字符串以0为结尾 ;参数: (ax)=dword型数据低字 ; (dx)=dword型数据高字 ; ds:si指向字符串的首地址 ;返回: 无 assume cs:code data segment haha dd tata dd dup(?) data ends code segment main: mov ax,data mov ds,ax mov si,offset h…
坐起来非常容易,找到这条路确实非常曲折,为了后来的同志们不再纠结,特记录如下: 这几天看汇编语言时,很多人都推荐王爽老师的<汇编语言>,老师的书的确写的很好,但是讲的是ms的汇编,但是总不能为了简单的几行汇编代码,就让我装个windows吧,win10几乎没有什么用处,win7有点大,winxp也太老了.自己好歹也是用linux近20年了, 这点还难不到我.主要如下步骤就可以轻松搞定linux下的masm编程,而且具有书上的一切环境,也可以使用linux下的各种工具. 一.首先安装软件: pa…
在学习王爽老师<汇编语言>的第6.2节时,在程序6.3代码中,给出了如下的代码: assume cs:code code segment dw 0123h, 0456h, 0789h, 0abch, 0123h, 0456h, 0789h, 0abch dw ,,,, ,,,, ,,,, ,,, start: mov ax,cs mov ss,ax mov sp,30h mov bx,0h s: push cs:[bx] loop s s0: pop cs:[bx] loop s0 mov a…
目录 王爽汇编第十章,call和ret指令 call和ret指令概述: ret和retf ret指令 retf指令 call 和 ret 的配合使用 call指令详解 call原理 call指令所有写法 call 指令大全图表 王爽汇编第十章,call和ret指令 call和ret指令概述: call和ret指令都是转移指令,它们都修改IP,或同时修改CS和IP.他们经常被用来实现子程序(函数)的设计. ret和retf ret指令 ret指令:用栈中的数据,修改IP的内容,从而实现(近转移):…
kali渗透综合靶机(四)--node1靶机 靶机下载地址::https://download.vulnhub.com/node/Node.ova 一.主机发现 1.netdiscover -i eth0 -r 192.168.10.0/24 二.端口扫描 1.masscan --rate=10000 -p 0-65535 192.168.10.157 三.端口服务识别 1. nmap -sV -T4 -O 192.168.10.157 -p 22,3000 四.漏洞发现 1.dirb http…
目录 王爽汇编第五章,[bx]和loop指令 [bx]和loop指令 例子: 王爽汇编第五章,[bx]和loop指令 [bx]和loop指令 [bx]之前我们介绍寄存器的时候,已经很详细的说明过了,bx是偏移寄存器用来索引,那么加上[]表示他是一个内存单元,段地址在ds寄存器中,偏移地址在bx中,计算方式:ds*16 + bx looploop指令是一个循环指令,他的指令格式是loop 标号,CPU执行loop指令的之后,要进行两个步骤: (cx) = (cx) - 1 判断cx的值,不为0则转…
第一章 基础知识 存储器(内存)存放CPU工作的指令和数据(CPU可以直接使用的信息在内存中存放):指令和数据都是二进制数没有任何区别,由CPU决定是数据还是指令 内存单元:存储器被分为若干个存储单元,并从0开始编号(存储单元的地址),一个存储单元为1字节(8bit) CPU的读写 总线逻辑上分为:地址总线.数据总线.控制总线 地址总线:地址线宽度决定了CPU的寻址能力,计算方式 :2^[地址线宽](个内存单元) 数据总线:决定了CPU和外界的数据传输速度(8根数据总线可传送一个8位(bit)二…
data segment s1 db 'Good,better,best,$' s2 db 'Never let it rest,$' s3 db 'Till good is better,$' s4 db 'And better,best.$' s dw offset s1, offset s2, offset s3, offset s4 row db ,,, ends code segment start: mov ax,data mov ds,ax mov bx,offset s mov…
一.RTSP是什么?用来干什么? RTSP(Real Time Streaming Protocol),RFC2326,实时流传输协议,是TCP/IP协议体系中的一个应用层协议,由哥伦比亚大学.网景和RealNetworks公司提交的IETF RFC标准.该协议定义了一对多应用程序如何有效地通过IP网络传送多媒体数据.RTSP在体系结构上位于RTP和RTCP之上,它使用TCP或UDP完成数据传输.HTTP与RTSP相比,HTTP请求由客户机发出,服务器作出响应:使用RTSP时,客户机和服务器都可…
partview php文件之前,我们像掉进沼泽一样,看到无尽的变量,数组元素,莫名其面的东西摆在我们面前.今天,我们继续艰难前行,想办法走出partview类的泥潭.上一篇,我们胡乱分析了partview类,完全搞不懂干什么的,里面弄了一堆变量,最清晰的我们只是知道几个生成首页的关键地方调用了DedeTagParse类的LoadTemplet方法和SaveTo方法.而在partview类定义的文件头部,包含了几个文件,我们就避开partview,先来看看这几个包含的文件吧. require_o…
四.实验结论 1.       实验内容1 (1)源代码: assume cs:code code segment mov ax,0b800h mov ds,ax mov bx,07b8h mov cx,16 s: mov [bx],0403h add bx,2 loop s mov ah,4ch int 21h code ends end (2)修改后运行结果: 2.       实验内容2 (1)源代码: assume cs:code code segment mov ax,0 mov ds…
在上一篇<Chrome自带恐龙小游戏的源码研究(三)>中实现了让游戏昼夜交替,这一篇主要研究如何绘制障碍物. 障碍物有两种:仙人掌和翼龙.仙人掌有大小两种类型,可以同时并列多个:翼龙按高.中.低的随机飞行高度出现,不可并行.仙人掌和地面有着相同的速度向左移动,翼龙则快一些或慢一些,因为添加了随机的速度修正.我们使用一个障碍物列表管理它们,当它们移出屏幕外时则将其从列表中移除.同时再用一个列表记录它们的类型: Obstacle.obstacles = []; //存储障碍物的数组 Obstacl…
一.介绍 谷歌浏览器和CEF使用V8JavaScript Engine作为内容的JavaScript实现.在浏览器中的每个窗口都有它自己在的JS上下文提供作用域和在窗口中安全的执行JS代码.CEF暴露大量JS功能集成在客户端应用程序.CEF3的Webkit和JS在单独的渲染进程中运行.在渲染进程的主线程中使用TID_RENDERER 作为唯一标识.所有V8的执行必须放置在这个线程中.与JS执行相关的回调函数被暴露是通过CefRenderProcessHandler接口实现.当一个新的渲染进程被初…
个人学习总结博客 项目 内容 这个作业属于哪个课程 任课教师博客主页链接 这个作业的要求在哪里 作业链接地址 作业学习目标 完成个人软件心得总结 一.结合本学期课程学习内容,对比<实验一 软件工程准备>的任务5你所提的问题提问博客链接,尝试对提出问题进行解答,并阐明是如何通过学习/实践/讨论弄清楚的:学习中是否产生了新的问题?如有,请提出. 1.在第5章中提到了很多的团队模式和开发流程,都各有优缺点,那么在团队当中每个人的性格都不尽相同,有时候会出现两级分化,该怎么处理这些事情呢?在团队中,每…
#(序列化) 在实际的框架中,真正影响效率的就是数据的传输方式,以及传输的准备,或者说是tcp与http,序列化.当然要想提高整个框架的效率,需要采用一种高效的序列化 框架比如流行的protostuff.总结一些有点如下: (1).Java序列化对象时不需要通过属性的get set方法或其它无关序列化内部定义的方法(比如readObject,writeObject是内置的序列化方法),序列化也不需要get set方法 支持,反序列化是构造对象的一种手段. (2).Java序列化时类型必须完全匹配…
;名称:ILOVEU程序 ;使用BIOS提供的中断例程 assume cs:code code segment main: ;显示背景22*80 ;dh中放行号 ;dl中放列号 bibi: push cx ;显示光标 ;第0页 int 10h ;在光标处显示个数自定的字符 ;9为在"在光标处显示字符的功能"的功能号 ' ;字符 mov bl,00001010b ;颜色属性 ;第 0 页 ;显示字符的个数 int 10h inc dl ;显示光标 ;第0页 int 10h ;在光标处显示…
一.操作流程 会员点击头像设置,弹出一个层,在层中,有上传图片的按钮,用户点击按钮上传图片,图片在服务器端按大小压缩保存(方便剪切).保存后,在前端显示,然后用户可修剪图片.选择图片区域,点击提交,保存修剪后的图片,图片保存后在当前页面头像区域显示图片. 使用的插件有:弹出层使用lightbox_me插件,上传文件使用blueimp插件,切割图片使用Jcrop插件.插件的使用方法可以看下面的博文: 网站开发常用jQuery插件总结(16)图片修剪插件Jcrop网站开发常用jQuery插件总结(1…
关于nginx的内存使用,我们先看代码,下面是nginx_cycle.c中对全局数据结构cycle的初始化过程 pool = ngx_create_pool(NGX_CYCLE_POOL_SIZE, log); //申请16K的内存池 if (pool == NULL) { return NULL; } pool->log = log; cycle = ngx_pcalloc(pool, sizeof(ngx_cycle_t)); if (cycle == NULL) { ngx_destroy…
此题解题背景默认为8080型CPU,地址总线为16根.(8080-16,8086-20,8088-20,80286-24,80386-32) 16根地址总线寻址能力:(2 ** 16) / 1024 = 65536(B) = 64(KB), 可以表示的存储单元个数为 0 ~ 2^n-1 个, 即 0 ~ 65535. 这里的 65535 为十进制数,转换为十六进制数为 0xffff (或 ffffH),具体转换方法可以用 Python3 函数 hex(65535). 再来看CPU内存单元物理地址…
SQL Server 2016 白皮书 内容:内存优化表 问题? -----内存优化表在2014版本推出,主要是如何作用?如何使用?目前有何变化? 内存优化表是可以将表放入内存中,能提升操作性能. -----内存优化表完全不存在锁的概念. 如何创建一个内存优化表: (1)          先创建一个特殊的文件组 也可以通过语句创建 ALTER DATABASE test ADD FILEGROUP SoarTest1 CONTAINS MEMORY_OPTIMIZED_DATA; 增加文件容器…
package com.JiHeTotal; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap;…
;监测点9.1(1) assume cs:code data segment db dup() data ends code segment start: mov ax,data :这一段一定要补上 mov ds,ax jmp word ptr [bx] mov ax,4c00h int 21h code ends end start 这里一开始无法理解题目的 ‘’   [bx+1]    “,是什么意思,然后自己还一根经的认为应该是 ” [bx] “(后来才知道这里都是一样的,他们都是0写道8…
前提知识 c0s调用main函数的地址: 11ah main函数的连接地址: 01fah 一.全局变量与局部变量 测试程序 int a1,a2,a3; void f(void); void g(void); void h(void); main() { int b1,b2,b3; a1 = 0xa1;a2 = 0xa2;a3 = 0xa3; b1 = 0xb1;b2 = 0xb2;b3 = 0xb3; } void f(void) { int c1,c2,c3; a1 = 0x0fa1;a2 =…
一.前提知识 1.如何传递参数(主函数) a.函数的参数是通过栈传递,而且是从右到左依次入栈 b.即使是char型变量,在传递参数时,也是占用两个字节,因为push操作是两个字节为单位的. c.showchar('a',2)这样的传入两个常数,也会在堆栈中开辟两个空间,也即对应两个实参变量. 2.函数如何接收参数(子函数) a. 函数接受形参是通过从栈中取的 b.通过BP可以找到传入参数的值,BP+4是第一个参数,BP+6是第二个参数......取参数是从左到右取的 3.如何释放参数(主函数)…