![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
汇编语言
bjzhaoxiao
这个作者很懒,什么都没留下…
展开
-
使用readelf和objdump解析目标文件
转自:https://www.jianshu.com/p/863b279c941e引言本文是对程序员的自我修养:链接、装载与库中第3章的实践总结(和结构相关的示意图都是用Gliffy Diagrams画的????),通过使用工具readelf、objdump对目标文件进行解析,学习目标文件的结构。1. 目标文件1.1 目标文件的定义编译器编译源代码后生成的文件叫做目标文件。在Lin...转载 2019-10-29 20:21:44 · 335 阅读 · 0 评论 -
函数调用栈 剖析+图解
栈: 在函数调用时,第一个进栈的是主函数中函数调用后的下一条指令(函数调用语句的下一条可执行语句)的地址,然后是函数的各个参数,在大多数的C编译器中,参数是由右往左入栈的,然后是函数中的局部变量。注意静态变量是不入栈的。当本次函数调用结束后,局部变量先出栈,然后是参数,最后栈顶指针指向最开始存的地址,也就是主函数中的下一条指令,程序由该点继续运行。当发生函数调用的时候,栈空间中存放的数据是...转载 2018-08-07 14:11:52 · 4858 阅读 · 0 评论 -
https://www.cnblogs.com/20145205y/p/6132211.html
转自:https://www.cnblogs.com/20145205y/p/6132211.htmlGDB调试汇编分析GDB调试汇编分析代码本次实践我参照了许多先做了的同学的博客,有卢肖明,高其,张梓靖同学。代码借用的是卢肖明同学的代码进行调试运行。GCC编译使用gcc -g gdbtest.c -o gdbtest -m32命令在64位的机器上产生32位汇编代码在使用gdb进行调试运行时,有c...转载 2018-04-27 11:58:03 · 932 阅读 · 0 评论 -
singularity linux下用gcc如何生成预处理、汇编等文件
转自:https://www.cnblogs.com/dpf-learn/p/6127750.htmlsingularitylinux下用gcc如何生成预处理、汇编等文件【gcc -E test.c -o test.i------>预处理文件生成.i 文件。】1、c语言程序生成过程C语言程序的生成过程可以简单的分为:编辑、预处理、编译、汇编、链接五个阶断。下面所有的操作以hello worl...转载 2018-04-27 11:30:10 · 277 阅读 · 0 评论 -
端口
接口芯片中也有自己接口卡的寄存器。Cpu通过不同的端口号找到特定设备的寄存器。问题有两个:1. CPU怎么把端口号映射为物理地址,地址总线的电瓶信号怎么和端口绑定的。a) 例如地址总线的第20位为1,其余位为0. Cpu 怎么知道这个地址信号就是外部接口的地址? 也就是说,外部接口怎么把自己的端口号和地址总线对应起来?然后cpu怎么知道这种对应关系?对应关系存在什么地方?Cpu访...原创 2018-04-27 09:48:08 · 198 阅读 · 0 评论 -
王爽汇编中断
中断中断向量表共256个表项,每个表项4个字节。共1024个字节。中断发生时 CPU做了什么事情 1) 得到中断的类型号2) 标志寄存器的值入栈3) 设置标志寄存器中的TF和IF为04) CS的内容、IP的内容入栈(为了中断处理完成后恢复程序的执行)5) 根据中断的类型号从中断向量表中找到中断处理程序的入口地址a) 中断向量表中是一个四字节的数,高位表示段地址,地位表示段内偏移地址b) ...原创 2018-04-26 19:04:41 · 441 阅读 · 0 评论 -
王爽汇编标志寄存器和转移指令
标志寄存器ZF标志mov ax,1sub ax,1执行完后ZF = 1 PF标志指令执行后,结果中的所有bit位中1 的个数是否为偶数,如果是偶数,pf = 1 SF 标志指令执行后,起结果是否为负数。 为负数 sf=1 CF标志在无符号数运行时,记录了结果的最高有效位向更高位的进位值Mov a1,98HAdd al,al ;执行后(al)=30H,CF =1. OF标志位进行有符号的数运算时,如...原创 2018-04-26 16:15:01 · 356 阅读 · 0 评论 -
王爽汇编第二版实验4
转帖: https://blog.csdn.net/seanbill/article/details/52649786(1)编程,向内存0:200~0:23F依次传送数据0~63. assume cs:code code segment start: mov ax,0020H mov ds,ax mov bx,0 mov cx,40h ...转载 2018-04-25 14:50:20 · 178 阅读 · 0 评论 -
汇编语言实现大写-》小写 小写-》大写
;大写-》小写 小写-》大写; BaSiC->BASassume cs:codesg, ds:datasgdatasg segment db 'BaSiC' db 'iNfOrMaTiOn'datasg endscodesg segmentstart: mov ax, datasg mov ds,ax mov bx,0 mov cx,5 s: mov al,[bx]...原创 2018-04-25 16:27:28 · 274 阅读 · 0 评论 -
汇编语言中数据位置的表达
原创 2018-04-25 16:54:50 · 563 阅读 · 0 评论 -
关于补码
(1) 最高位为1,表示负数;(2)正数的补码取反加1后,为其负数的补码;(3)负数的补码取反加1后,为其绝对值。例如: 已补码形式在内存中的数 F6,求其值 a . 1111 0110b. 取反: 0000 1001c. 加1: 0000 1010首先补码首位是1,所以是负数其次求其绝对值(取反+1)10得到最后结果: -10F0=?1111 0000-&g...原创 2018-04-26 01:55:04 · 432 阅读 · 0 评论 -
实验8 分析一个奇怪的程序(第174页)
实验8 分析一个奇怪的程序(第174页)---------------------------------分析下面的程序,在运行前思考:这个程序可以正确返回吗?运行后再思考:为什么是这种结果?通过这个程序加深对相关内容的理解。assume cs:codesgcodesg segment mov ax,4c00h int 21h start: mov ax,...原创 2018-04-26 02:19:18 · 997 阅读 · 0 评论 -
王爽汇编实验9
======================================网上搜到的答案======================================实验9 根据材料编程(第175页)-------------------------------assume cs:code,ds:data,ss:stack data segment db 'welcome to ma...原创 2018-04-26 11:58:05 · 1395 阅读 · 0 评论 -
王爽汇编ret call的含义
ret1. retcpu执行ret相当于:pop IPa. (IP)= ((SS)*16+(sp))b. (sp) = (sp) +2cpu执行retf指令时相当于:pop IPPOP CSa. (IP) = ((SS)*16+(SP))b. (SP) = (sp)+2c. (cs)=((ss)*16+(sp))d.(sp)=(sp)+2callcall 标号相当于:push IPjmp near...原创 2018-04-26 13:34:55 · 615 阅读 · 0 评论 -
关于补码
(1) 最高位为1,表示负数;(2)正数的补码取反加1后,为其负数的补码;(3)负数的补码取反加1后,为其绝对值。例如: 已补码形式在内存中的数 F6,求其值 a . 1111 0110b. 取反:0000 1001c. 加1: 0000 1010F6 = -10...原创 2018-04-26 13:37:48 · 285 阅读 · 0 评论 -
汇编语言实现大写-》小写 小写-》大写
;大写-》小写 小写-》大写; BaSiC->BASassume cs:codesg, ds:datasgdatasg segment db 'BaSiC' db 'iNfOrMaTiOn'datasg endscodesg segmentstart: mov ax, datasg mov ds,ax mov bx,0 mov cx,5 s: mov al,[bx]...原创 2018-04-26 13:38:30 · 268 阅读 · 0 评论 -
王爽汇编 乘法
原创 2018-04-26 13:43:29 · 918 阅读 · 0 评论