汇编与反汇编
springcsc1982
这个作者很懒,什么都没留下…
展开
-
8086汇编7:跳转指令
jmp short 标号:对IP的修改为 -128 至 127 负数为往上跳,正数为往下跳jmp short 标号 执行过程:跳转地址放入IP jmp far ptr 标号:段间转义,又称为远转移。原理:同时修改CS与IPjmp dword ptr 内存单元地址(段间转移)jcxz为由条件转移指令,所有IP地址为短原创 2017-02-16 23:45:23 · 1217 阅读 · 0 评论 -
8086汇编1:HELLO WORLD
assume cs:code,ds:datadata segment str1 db 'hello world123456789$'data endscode segmentstart: mov ax,data mov ds,ax mov dx,offset str1 mov ah,09h int 21h原创 2017-02-11 21:51:25 · 2943 阅读 · 0 评论 -
8086汇编3:负数的表示法-补码
负数的表示法在原来的系统中,负数采用第一位为1,正数位0的做法,比如:3: 00000011-3:10000011但这样有一种特殊的情况,即0的表示会有正负值,即0: 00000000-0:10000000这样的表达容易使计算机混乱,于是负数使用了补码的方式,即整数求反+1比如-3的表示方式:3 =>00000011求反=>111原创 2017-02-13 10:23:58 · 6003 阅读 · 0 评论 -
8086汇编4:bx与loop的使用
loop 与 [bx](1)[bx] :取bx保存数据所对应内存地址(偏移地址)(2)LOOP指令与CXcx = cx -1判断CX中的值,如果不为0则跳转的标号执行,如果为0则向下执行mov cx,11s:add ax,axloop smov ax,2mov cx,3s:add ax,axloop s注意:l原创 2017-02-14 00:05:59 · 1881 阅读 · 0 评论 -
8086汇编5:更灵活的寻址方式
and 指令:与,两位为1才是1or 指令:或,两位有1位为1是1字母大小写转换。大小写字母的ASCII的第5位不一样,其他的都一样,不管她是大写还是小写,第5位置0就变成大写字母,第5位置1就变成小写字母or 0010000and 1101111------------------------------------更加灵活访问内存原创 2017-02-15 00:13:18 · 339 阅读 · 0 评论 -
8086汇编6:数据处理的基本问题
数据处理的基本问题在8086中,只有BX,BP,SI,DI可以放到[ ]中进行间接寻址。一般会有4种组合:bx+si,bx+di,bp+si,bp+di如果[]中使用寄存器bp,则表示段地址在ss中绝大部分机器指令进行数据处理的指令分为3类:读取、写入、运算处理的数据在三个地方出现:CPU内部、内存、端口寻址方式总结:原创 2017-02-15 23:39:28 · 329 阅读 · 0 评论 -
8086汇编2:补充点基础知识
(1)8086 加电启动的时候,CS为FFFFH,IP为0000H,即启动时CPU从FFFF0H单元中读取指令执行。(2)要修改CS\IP的值时,必须使用JMP指令。格式为:jmp 段地址:偏移地址。如果要单独修改IP,则用jmp 某一个合法的寄存器,比如mov IP,AX(3)8086CPU有4个段寄存器,其中CS是用来存放指令的段地址,IP用于存放指令的偏移地址。任意时刻CPU将C原创 2017-02-13 00:00:16 · 468 阅读 · 0 评论