1、仅仅有“bx、si、di、 bp”四个寄存器能够用在[…]中来进行内存单元的寻址 2、这四个寄存器能够单个出现也能够以[by+zi]形式出现,当中y=x或p,z = s或d ,其它格式均为错误的。 3、当使用bp时。假设没有显性地给出段地址。则段地址默认在ss段寄存器中。 4、汇编语言中用三个概 ...
分类:
编程语言 时间:
2018-02-25 17:24:42
阅读次数:
114
在前面的几个章节中,我们的程序都是只有一个代码段,本章我们开始学习如何编写包含多个段的程序。 1、在代码段中使用数据 首先考虑这样一个问题,计算以下8个数据的和,结果存放在ax寄存器中: 0123H,0456H,0789H,0abcH,0defH,0fedH,0cbaH,0987H 在前面的课程中, ...
分类:
编程语言 时间:
2017-08-03 00:46:24
阅读次数:
274
这一章主要介绍什么是[BX]以及loop(循环)指令怎么使用,loop和[BX]又怎么样相结合,段前缀又是什么鬼,以及如何使用段前缀。 1、[BX]的概念 [BX]和[0]类似,[0]表示内存单元的偏移地址是0。要完整描述一个内存单元,需要两种信息:内存单元的地址,内存单元的长度(类型)。[BX]同 ...
分类:
编程语言 时间:
2017-08-01 22:59:55
阅读次数:
151
1、使用工具 代码编写:NotePad++,代码编译器:MASM 2、一个源程序从写出到执行的过程 第一步,使用文本编辑器,用汇编语言编写汇编源程序,这一步产生一个存储源程序的文本文件。 第二步,对源程序进行编译,连接。使用MASM.exe对源程序文件进行编译,产生目标文件,再使用LINK.exe对 ...
分类:
编程语言 时间:
2017-07-29 10:15:03
阅读次数:
212
十八、字符串处理 前文介绍过字符串的处理,字符串是byte类型 的数组,现在实现一段代码,将字符串string1数据copy到字符串string2中 代码如下 通过ecx递减,将字符串string1每个字符一次copy给string2中,其中用到了ebx基址寄存器。 也可以通过esi和edi寄存器 ...
分类:
编程语言 时间:
2017-04-14 23:02:15
阅读次数:
357
十六、数组 数组的基本表示方法 numary sdword 2,5,7 numary数组中有三个元素,为sdword类型,分别为2,5,7 empary sdword ?, ?,? empary数组为sdword类型元素,未初始化。 如果数组元素很多可通过 zeroary sdword 100 du ...
分类:
编程语言 时间:
2017-04-12 17:56:47
阅读次数:
235
八、逻辑运算指令 数字在计算机中以二进制存储,每个位数字为0或者1,当两个二进制数字进行逻辑按位&,逻辑按位|,逻辑异或^操作, 可以采用汇编语言提供的逻辑运算指令and,or, xor,not等指令。 and指令: C语言&操作,将0110&1101得出结果为0100 C语言代码为 汇编语言高级指 ...
分类:
编程语言 时间:
2017-04-04 15:59:56
阅读次数:
206
六、选择结构 if-then结构 C语言版本 MASM汇编 cmp指令,该指令用于比较两个参数大小 cmp mem, imm 比较内存mem和立即数imm大小 cmp reg, imm 比较寄存器reg和立即数imm大小 cmp reg, mem 比较寄存器reg和内存mem大小 cmp mem, ...
分类:
编程语言 时间:
2017-03-31 18:41:39
阅读次数:
354
1.基本汇编指令 1.传送指令:MOV 格式:MOV OPD,OPS 操作:将OPS的值传送到OPD中 注意事项: 1.OPD不能是CS 2.不允许在两个存储单元之间传送 3.MOV影响所有标志位 4.OPD、OPS的数据类型要一致 5.OPD为CS时,OPS不能为立即数 2.进栈指令:PUSH 格 ...
分类:
编程语言 时间:
2016-04-22 16:15:42
阅读次数:
192
1.汇编指令:汇编指令、伪指令、宏指令(用分号表示注释) 1.汇编指令:由操作码字段和操作数字段组成 1.格式:操作码 操作数 2.操作数段:单操作数指令、双操作数指令、三操作数指令。(由于执行时要指出操作数的地址,则又称为一地址指令、二地址指令、三地址指令。若只有操作码,则为零地址指令) 对于双操 ...
分类:
编程语言 时间:
2016-04-09 16:50:15
阅读次数:
264