王爽《汇编语言》 第三版 汇编工作环境搭建 摘要:一、环境搭建 因为汇编程序一般运行在DOS环境下,而现在系统一般都是win7、win8或win10,因此,需要在windows下搭建DOS环境。1.1 工具准备 首先,下载dosbox,这是一个虚拟机,可以作为DOS环境来运行汇编程序。下载地址:http://pan.baidu.com/s/1cwl阅读全文 ...
《汇编语言第三版》清华大学出版社,2013年版,王爽著,ISBN 978-7-302-33314-2。本项目用来做该书的学习笔记,管理实验任务源码等。 实验系统:linux,实验环境:dosbox模拟dos环境,编译环境:masm5。该项目包含学习汇编的三个基本软件,masm编译器、link链接器、debug调试器。
(2)显示十进制形式的字符串。 第二步我们在本次实验的第一个子程序中己经实现,在这里只要调用一下show str即可。我们来讨论第一步,因为将二进制信息转变为十进制形式的字符串也是经常要用到的功能,我们应该为它编写一个通用的子程序。 子程序描述 名称:dtoc 功能:将word型数据转变为表示一十进制数的字符串,字...
我们定义的描述性符号:reg和sreg 为了描述上的简洁,在以后的课程中,我们将使用两个描述性的符号reg来表示一个寄存器,用sreg表示一个段寄存器。 reg的集合包括:ax, bx, cx, dx, ah, al, bh, b1, ch, c1, dh, dl, sp, bp, si sreg的集合包括:ds, ss, cs, es bx、si、di和bp 前3个寄存器我们己...
从上面的问题中,实际上引出了一个一般化的问题:子程序中使用的寄存器,很可能在主程序中也要使用,造成了寄存器使用上的冲突。 那么如何来避免这种冲突呢?粗略地看,可以有以下两个方案。 (1)在编写调用子程序的程序时,注意看看子程序中有没有用到会产生冲突的寄存器,如果有,调用者使用别的寄存器; ...
8088CPU分两次传送89D8,第一次传送D8 ,第次传送89 8086有16根数据线,可一次传送16位数据,所以可一次传送数据89D8H;而8088只有8根数据线,一次只能传8位数据,所以向内存写入数据89D8H时需要进行两次数据传送。 控制总线 CPU对外部器件的控制是通过控制总线来进行的。在这里控制总线是个总称,控制总线是一些不同控制...
(2)接下来,第4条指令: mov ax, [bx] 指令执行前:ds=2000H, bx=1000H,则mov ax,[bx]将把内存2000:1000处的字型数据送入ax中。该指令执行后,ax=00beH (3)接下来,第5, 6条指令: inc bx inc bx 这两条指令执行前bx=1000H,执行后bx=1002H ...
Intel Core Duo:第一款移动版双核处理器< Intel于2006年发布了Core Duo处理器。针对移动PC设计的第一款双核处理器具有优异的性能(高出Pentium 4许多)。这也是真正双核设计的第一款x86处理器,缓存则是共享的(Pentium D较像是两颗处理器放在相同封装中的组合)。这颗处理器也是Centrino Duo平台的构成组件之一,唯一缺点...
push [0] ;将1000:。处的字压入栈中 pop [2] ;出栈,出栈的数据送入1000:2处 指令执行时,CPU要知道内存单元的地址,可以在push, pop指令中只给出内存单元的偏移地址,段地址在指令执行时,CPU从ds中取得。 问题3.7 编程,将10000H-1 000FH这段空间当作栈,初始状态栈是空的,将AX, BX, DS中的数据入栈。
转移地址在内存中的jmp指令有两种格式: (1) jmp word ptr内存单元地址(段内转移) 功能:从内存单元地址处开始存放着一个字,是转移的目的偏移地址。内存单元地址可用寻址方式的任一格式给出。比如,下面的指令: