汇编语言
SkYe231_
这个作者很懒,什么都没留下…
展开
-
汇编语言(二)
段的概念内存没有分段,段的划分来自CPU。在编程时可以根据需要,将若干地址连续的内存单元看作一个段。8086CPU可将地址连续、起始地址为16的倍数的一组内存单元定义为一个段。(其为16位CPU)段寄存器CS&IPCS为代码段寄存器;IP为指令指针寄存器;寄存器与指令关系:8086机中,任意时刻,CPU将CS:IP指向内容当做指令执行修改CS、IP的指令最简单修改CS、...原创 2019-08-04 15:42:58 · 356 阅读 · 0 评论 -
汇编语言(七)
9. 转移指令的原理可以修改IP、或同时修改CS和IP 的指令统称为转移指令。9.1 操作符 offsetoffset功能是取得标号的偏移地址。如:assume cs:codesgcodesg segment start:moc ax,offset start;相当于mov ax,0 s:mov ax,offset s;相当于mov axx,3codesg endsend sta...原创 2019-08-06 19:15:09 · 184 阅读 · 0 评论 -
汇编语言(六)
8 数据处理的两个基本问题定义描述性符号:reg表示一个寄存器sreg表示一个段寄存器8.1 bx、si、di、bp8086cpu中,只有bx、si、di、bp四个寄存器可用在[...]进行内存单元的寻址在[...]中,四个寄存器可以单个出现,或只能以四种组合出现:bx sibx dibp sibp di[...]使用寄存器bp,而指令中没有显性地给出段...原创 2019-08-06 19:13:57 · 275 阅读 · 0 评论 -
汇编语言(六)
7. 更灵活的定位内存地址的方法7.1 and 和 or 指令and指令:逻辑与指令,按位进行与运算。如:mov al,01100011Band al,00111011B执行后:al=00100011B通过该指令可将操作对象的相应位设为0,其他位不变。同位异为0,同位同为原数。or指令:逻辑或指令,按位进行或运算mov al,01100011Bor al,001110...原创 2019-08-06 19:12:26 · 219 阅读 · 0 评论 -
汇编语言(一)
基本知识汇编语言的组成汇编语言由以下3类指令组成汇编指令:机器码的助记符,有对应的机器码伪指令:没有对应的机器码,有编译器执行,计算机并不执行其他符号:由编译器识别,没有对应机器码存储单元存储器容量是以字节为最小单位来计算。如:一个拥有128个存储单元的存储器,容量为128字节存储单元编号从0开始地址总线一个CPU有N根地址线,则可以说这个CPU的地址总线的宽度为N。CPU...原创 2019-08-02 11:32:32 · 329 阅读 · 0 评论 -
什么是立即操作数?
什么是立即操作数?问题的发现在汇编语言中, 用作立即操作数 的所有标签和数字常量 ( 即不在诸如 3 (%eax, %ebx, 8) 这样的地址计算中 ) 总是以美元符号 $ 为前缀. 需要的时候, 前缀 0x 表示十六进制数, 例如 $ 0xABC . 如果没有前缀, 则默认该数字为十进制数。在AT&T汇编格式中,用$前缀表示一个立即操作数。(在Intel汇编格式中,立即数的表...原创 2019-08-07 23:44:50 · 7069 阅读 · 0 评论 -
汇编语言(五)
6. 包含多个段的程序6.1在代码段中使用数据 assume cs:code code segment dw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h mov bx,0 mov ax,0 mov cx,0 s: add ax,cs:[bx] add bx,2;bx循环增加2,不断指...原创 2019-08-04 15:54:59 · 189 阅读 · 0 评论 -
汇编语言(四)
5. [BX]和loop指令[bx]表示一个内存单元,它的偏移地址在bx中:mov ax,[bx]描述性符号()表示一个寄存器或一个内存单元中的内容idata表示常量5.1 [BX]mov ax,[bx]bx中存放的数据作为一个偏移地址EA,段地址SA默认在ds中,将SA:EA处数据送入ax中。mov [bx],axbx中存放的数据作为一个偏移地址EA,段地址S...原创 2019-08-04 15:49:58 · 209 阅读 · 0 评论 -
汇编语言(三)
4. 第一个程序4.1 一个源程序从写出到执行的过程编写汇编源程序对源程序进行编译链接对源程序文件中的源程序进行编译,产生目标文件;在用链接程序对目标文件进行链接,生成可在操作系统中直接运行的可执行文件,可执行文件包含两部分:程序(机器码)和数据相关的描述信息(如:程序体积,占用内存空间)执行可执行文件中的程序4.2 源程序assume cs:codesgc...原创 2019-08-04 15:47:30 · 812 阅读 · 0 评论 -
汇编语言(八)
10. CALL和RET指令10.1 ret和retfret指令用栈中的数据,修改ip的内容,从而实现近转移;retf指令用栈中的数据,修改cs和ip的内容,从而实现远转移;执行ret指令时:(ip)=((ss)*16+(sp))(sp)=(sp)+2相当于:pop ip执行retf指令时:(ip)=((ss)*16+(sp))(sp)=(sp)+2(cs)=((...原创 2019-08-06 23:15:53 · 262 阅读 · 0 评论