汇编学习第七章
发表于|更新于|汇编
|总字数:0|阅读时长:1分钟|浏览量:
文章作者: LYC
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Rick!
相关推荐

2019-10-20
汇编学习2019-10-20
一段内存,既可以是代码存储空间,又是数据的存储空间,还可以是栈空间,也可以设么也不是,它们主要取决于cpu中寄存器的设置 CS(Code segment),IP(instruction pointer) :代码段 SS(stack segment),SP(stack pointer) :栈段 DS(date segment) :数据段 debug在修改寄存器ss时候,下一条指令也紧接着被执行例如: 123mov ss,axmov ss,[0]pop ss 汇编程序 汇编程源程序中有两类指令,一是汇编指令,第二是伪指令,汇编指令是有对应的机器码的指令,伪指令是由编译器来执行的。 目的 相关指令 指令性质 指令执行者 通知某一寄存器和程序中的某个段相联系 assume 寄存器:段名 伪指令 编译时,由编译期执行 通知编译器一个段开始 段名 segment 伪指令 编译时,由编译期执行 通知编译器一个段结束 段名 ends 伪指令 编译时,由编译期执行 程序返回 mov ax,4c00H int 21H 伪指令 编译时,由编译期执行 程序结束 段名...

2020-02-29
汇编回顾
栈相当于是独立的一块区域,专门保存变量信息等内容 1、CS是代码段寄存器,IP是指令指针寄存器(相当于偏移地址)。修改CS、IP的指令不同于修改通用的寄存器值的指令,修改通用寄存器的值可以用mov 指令(mav ax,123),mov指令被称为传送指令。修改CS、IP的指令是jmp指令。jmp指令被称为转移指令。 (1)同时修改代码段寄存器和指令指针寄存器,形如jmp 段地址:偏移地址。 jmp2AE3:3,执行后:CS=2AE3H,IP=0003H,CPU将在2AE33H处读取指令 (2)仅想修改IP的内容,形如“jmp 某一合法寄存器”,功能是用某一合法寄存器中的值修改IP的内容 jmpax,指令执行前:ax=1000H,CS=2000H,IP=0003H ...

2019-10-22
汇编学习第九章
实验9 根据材料编程 12345678910111213141516171819202122232425262728293031323334353637383940assume ds:codedata segment ;要显示的字符串内容 db 'welcome to masm!'data endscode segment start: ;设置数据段地址 mov ax,data mov ds,ax mov ax,0B800H ;B800H显示缓冲区的起始地址 mov es,ax mov bx,0 ;字符串内容的偏移地址,每次增加1 ;缓冲区的偏移地址,每次增加2 ;深入分析: ;需显示在屏幕中间,由材料知每1行有80个字符占160个字节,而显示 ...

2019-10-20
汇编学习2019-10-21
第五章 注意事项 汇编源程序中,不能以字母开头,要在前面加0 1mov ah,0ffffh Debug 和 masm编译器对形如mov ax,[idata] 这类指令在解释上的不同。 debug对其解释为[idata]的一个内存单元,而编译器解释为数据idata 在汇编源程序中[idata]的用法 如果idata是实数,必须显式的在[]前面给出段地址 mov al,ds:[0],或者用寄存器中的值当做段地址(段前缀) mov al,ds:[bx] 如果idata代表一个寄存器bx ax ... 则[bx]直接代表了bx寄存器中地址处的值 段前缀 出现在访问内存单元的指令中,用于显式的指明内存单元的段地址的 1234ds:cs:ss:es: 在汇编语言中称为段前缀 安全的代码区域 在一般PC机中,DOS方式下,DOS和其他合法程序一样不会使用 0:200~0:2ff(00200h~002ffh)的256字节,这段空间是安全的,进入debug后查看一下这段内存空间,全是0表明没有被使用。 第5章课后实验 将mov...

2019-10-24
汇编学习第十一章
补码 及 溢出判断 标志寄存器 ZF标志 flag的第6位是ZF,零标志位(zero flag)。 它记录相关指令(add、sub、mul、div、inc、or、and操作)执行后,结果是否为0 。ZF = 1结果不为0,ZF = 0结果为0。 mov、push、pop等传送指令不修改标志寄存器的信息。 PF标志 flag的第2位是PF,奇偶标志位。 它记录指令执行后,结果的所有二进制位中1的个数是否为偶数,如果为偶数则PF = 1,为奇数,PF = 0。 SF标志 flag的第7位是SF,符号标志位。 它记录指令执行后,结果是否为负(就是看它二进制的第一位是不是1),如果为负数则SF = 1,结果为正, SF =...

2019-10-24
汇编学习第十三章
实验13(1) (1)编写并安装int 7ch中断例程,功能为显示一个用0结尾的字符串,中断例程安装在0:200处。 参数: (dh)=行号, (dl)=列号, (cl)=颜色 ds:si指向字符串首地址 以上中断例程安装好后,对下面的程序进行单步跟踪,尤其注意int,iret指令执行前后cs,ip的和栈中的状态。 123456789101112131415161718192021222324252627282930313233assume cs:codedata segment db 'Welcome to masm!', 0data endscode segmentstart: mov dh, 10 ;所在行数:11行 mov dl, 10 ;所在列数:11列 mov cl, 2 ;字符属性 mov ax, data mov ds, ax mov si, 0 ;入口参数ds:si指向字符串data ...
评论