YiMiTuMi

使我进步的不是谦虚,而是别人羡慕我时我的那份骄傲!

(二十)div 指令(除法指令)和 mul 指令(乘法指令)--汇编笔记

汇编语言

div指令(除法指令) div是除法指令,使用div做除法的时候应注意一下问题:   1)除数:有8位和16位两种,在一个reg(寄存器)或内存单元中。   2)被除数:默认放在AX或DX和AX中,如果除数为8位,被除数则为16位,默认存放在 AX中存放;如果除数为16位,被除数则为32位,在DX和AX中存放, DX存放高16位, AX存放低16位。   3)结果:如果除数为8位,则...

(二十一)dd指令 和 dup指令--汇编笔记

汇编语言

伪指令dd db用来定义 字节型数据。 dw用来定义 字型数据。 dd用来定义 dword(double word,双字)型数据。 data segment db 1 dw 1 dd 1 data ends 在data段中定义了3个数据:   1)第一个数据为01H,在data:0处,占1个字节。(即从data:0向后找8位或1个字节)   2)第二个数据为0001...

(十九)word ptr 和 byte ptr --汇编笔记

汇编语言

指令要处理的数据有多长 8086CPU的指令,可以处理两种尺寸的数据,byte和word。所以在机器指令中要指明,指令进行的是字操作还是字节操作。 1)通过寄存器名指明要处理的数据的尺寸。 字操作: mov ax, 1 mov bx, ds:[0] mov ds, ax mov ds:[0], ax inc ax add ax, 1000 字节操作: mov al, ...

(十八)寻址方式--汇编笔记

汇编语言

寻址方式 当数据存放在内存中的时候,我们可以用多种方式来给定这个内存单元的偏移地址,这种定位内存单元的方法一般称为寻址方式。 EA:偏移地址 SA:段地址 直接寻址:(根据idata寻址) 寻址方式:[idata] 含义:EA = idata; SA = (ds) 常用:[idata] 寄存器间接寻址:(根据寄存器中地址寻址) 寻址方式: [bx] [...

(十七)数据处理和寄存器的用法--汇编笔记

汇编语言

寄存器 定义描述性符号:reg 和 sreg reg 用来表示一个寄存器。 sreg用来表示一个段寄存器。 reg的集合包括:ax bx cx dx ah al bh bl ch cl dh dl sp bp si di sreg的集合包括: ds ss cs es bx si di 和 bp 1)在8086CPU中,只有这4个寄存器可以用在[…]中来进行内存单元的寻址。 正...

(十六)不同的寻址方式的灵活应用--汇编笔记

汇编语言

不同的寻址方式的灵活应用  1) [idata]用一个常量来表示地址,可以直接定位一个内存单元。(注意编译器的差别)  2)[bx]用一个变量来表示内存地址,可以间接定位一个内存单元。  3)[bx + idata]用一个变量和常量表示地址,可在一个起始地址的基础上用变量间接定位一个内存单元。  4)[bx + si]用两个变量表示地址。  5)[bx + si + idata]用...

(十五)SI 和 DI的多种使用方法--汇编笔记

汇编语言

SI 和 DI si和di是8086CPU中和bx功能相近的16位寄存器,si和di不能够分成两个8位寄存器来使用。 例:实现功能相同 mov bx, 0 mov ax, [bx] mov si, 0 mov ax, [si] mov di, 0 mov ax, [di] 例2:实现功能相同 mov bx, 0 mov ax, [bx + 123] mov s...

(十四)[bx + idata]的方式进行数组的处理--汇编笔记

汇编语言

[bx + idata] (idata = 常量) 可以用[bx]来指明一个内存单元。 也可以用[bx + idata]表示一个内存单元,它的偏移地址为bx + idata。 mov ax, [bx + 200] 含义:将一个内存单元的内容送入ax,这个内存单元的长度为2个字节(字单元),存放一个字,偏移地址为bx中的数值加上200,段地址在ds中。 ax = ds * 16 +...

(十三)and 和 or指令 与 大小写转换--汇编笔记

汇编语言

and 和 or指令 and指令:逻辑与指令,按位进行与运算。(全1出1) mov al, 01100011B and al, 00111011B 结果:al = 00111011B 通过该指令可将操作对象的相应位设为0,其他位不变。 or指令:逻辑或指令,按位进行或运算。(有1出1) mov al, 01100011B or al, 00111011B 结果:al = 01...

(十)包含多个段的程序、end 和 dw的使用--汇编笔记

汇编语言

包含多个段的程序 程序获取空间的两种方法:  1)在加载程序的时候为程序分配。  2)程序在执行过程中向系统申请。 我们若要一个程序在被加载的时候取得所需的空间,则必须要在源程序中做出说明。我们通过在源程序中定义段来进行内存空间的获取。 在代码段中使用数据(end 标号 和 dw) 计算 0123H 0456H 0789H 0abcH 0defH 0fedH 0cbaH 0987...