汇编语言
小小蜗牛
这个作者很懒,什么都没留下…
展开
-
汇编学习笔记--寄存器
一个典型的CPU是由运算器、控制器、寄存器等器件组成,对汇编程序员来说,CPU的主要部件是寄存器,我们可以用它来读写指令,通过改变各种寄存器的内容来实现对CPU的控制。8086CPU共有14个寄存器,都是16位的。通用寄存器AX,BX,CX,DX--通用寄存器mov ah,123h编译会报错,第二个参数超过8位当计算加法时,若加数太大,导致超过最大值,则高位的值会被原创 2013-04-07 23:37:54 · 854 阅读 · 0 评论 -
汇编学习笔记--内中断
编程任务:编写0号中断处理程序,使得在除法溢出发生时,在屏幕中间显示字符串“devide error!”,然后返回到DOS。assume cs:codecode segment start: ;1.安装程序 mov ax,cs mov ds,ax mov si,offset interru原创 2013-04-25 21:31:41 · 757 阅读 · 0 评论 -
汇编学习笔记--数据处理的两个基本问题
一、bx、si、di、bp在8086CPU中,只有bx、si、di、bp这四个寄存器可以通过[……]方式来进行内存单元的寻址;这四个寄存器可以单独存在,也可以以组合的形式进行寻址,但是bx和bp不能一起使用,si和di不能一起使用,所以即使组合最多也只能两个组合,不会有三个组合在一起的形式,当然可以加个常量:[bx+si+idata];只要使用bp,而段地址没有显式给出,则默认段地址为原创 2013-04-15 21:15:20 · 1462 阅读 · 0 评论 -
汇编学习笔记--更灵活的寻址方式
一、实例1:将字符串BaSiC全转换为大写,将iNForMaTIOn全转换为小写assume cs:code,ds:datadata segment db 'BaSiC' db 'iNForMaTIOn'data endscode segment start: mov ax,data mov ds,ax ;初始化数据段段地原创 2013-04-15 19:57:55 · 802 阅读 · 0 评论 -
[bx]和loop指令
loop指令学习loop指令的格式:loop 标号执行过程:1.cx = cx - 1 2.如果cx==0,则执行标号处的代码,否则向下执行通常用loop指令实现循环过程,而cx中存放循环次数 实例1:计算2^12;caculate 2^12assume cs:codesegcodeseg segment mov ax,2 ;循环11次原创 2013-04-14 11:14:53 · 885 阅读 · 0 评论 -
汇编语言学习笔记--第一个汇编程序
assume cs:codeseg ;assume假设某个段与某个特定的寄存器相关联;XXX segment 与 XXX ends 共同定义一个段,分别代表段的开始和结束;XXX就是段的名称;段主要用来存放代码、数据或用作栈空间来使用;一个有意义的汇编程序至少要有一个段,用来存放代码codeseg segment mov ax,0123h mov bx,0456h原创 2013-04-14 10:23:40 · 922 阅读 · 0 评论 -
汇编学习笔记--包含多个段的程序
实例1:计算如下八个数的和,结果存放在ax中 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h分析: 可以将这八个数存放在内存中,然后通过循环实现累加。但是我们不应该用mov命令把它们写到固定地址的内存单元中,最好的做法是让系统来为它们自动分配内存,就像我们并不会告诉系统我们的代码必须放在哪些内存单元中,而是系统在执行这段程序时动原创 2013-04-14 16:46:09 · 841 阅读 · 0 评论 -
汇编学习笔记--CALL和RET指令
一、call和ret指令call和ret都是转移指令,经常被用来实现子程序的设计。 ret和retfret指令用栈中的数据修改IP的内容,实现段内近转移;相当于pop ipretf指令用栈中的数据修改CS和IP的内容,实现段间转移;相当于pop ip,pop cs call指令格式:call 标号 相当于push ip,jump near ptr 标号原创 2013-04-20 21:31:02 · 1548 阅读 · 0 评论 -
汇编学习--练习一
练习题一向内存0:200~0:23F依次传送数据0~63 assume cs:codecode segmentmov ax,0020hmov ds,axmov cx,64mov bx,0s:mov [bx],blinc bxloop smov ax,4c00hint 21hcode endsend原创 2013-04-08 23:16:58 · 658 阅读 · 0 评论 -
汇编学习笔记--转移指令的原理
可以修改IP,或同时修改CS和IP的指令统称为转移指令。只修改IP的指令是段内转移(包括短转移和近转移),同时修改IP和CS的称为段间转移。 一、依据位移进行转移的jump指令段内短转移:jump short 标号实际功能:IP = IP + 8位位移(1)8位位移 = 标号处的地址 - jump指令后的第一个字节位置(2)位移范围为-128~127,用补码表示 段原创 2013-04-17 20:31:40 · 1524 阅读 · 0 评论