随笔分类 -  汇编语言

摘要:可以修改IP或者CS:IP的指令叫做转移指令.只修改IP,称为段内转移如jmp ax,根据对IP修改的范围不同分为短转移和近转移,范围分别为-128到127和-32768到32767同时修改CS和IP的指令称为段间转移,如jmp 1000:09.1 offsetoffset 标号,用于取标号的偏移地... 阅读全文
posted @ 2015-07-22 11:15 superzhao 阅读(583) 评论(0) 推荐(0)
摘要:第一次做 比较烂的实现:assume cs:code,ds:data,ss:stackdata segmentdb '1975','1976','1977','1978','1979','1980','1981','1982','1983'db '1984','1985','1986','1987'... 阅读全文
posted @ 2015-07-16 23:14 superzhao 阅读(3315) 评论(0) 推荐(0)
摘要:本章是前面章节的总结1.处理的数据在哪?2.数据有多长?以下理由reg表示寄存器,sreg表示段寄存器reg有:ax,bx,cx,dx,ah,al,bh,bl,ch,cl,dh,dl,sp,bp,si,disreg有:cs,ds,es,ss8.1 bx,si,di 和 bp1) [..]中只能使用这... 阅读全文
posted @ 2015-07-13 18:36 superzhao 阅读(322) 评论(0) 推荐(0)
摘要:参见第七章中的最后一个程序 阅读全文
posted @ 2015-07-13 13:51 superzhao 阅读(266) 评论(0) 推荐(0)
摘要:7.1 and 和 or 指令 二进制的and or 可以将某位归0或置17.2 关于ASCII码7.3 以字符形式给出数据 data segment db 'unIX' //相当于db 75H,6EH,49H,58H db 'foRK' //相当于db... 阅读全文
posted @ 2015-07-10 18:34 superzhao 阅读(494) 评论(0) 推荐(0)
摘要:A)将下面的程序编译连接,用Debug加载、跟踪,然后回答问题assume cs:code,ds:data,ss:stackdata segmentdw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987hdata endsstack segmentdw 0... 阅读全文
posted @ 2015-07-10 16:04 superzhao 阅读(1762) 评论(0) 推荐(0)
摘要:多个段相对单个段结构清晰易于调用将数据段数据逆序放在原位置assume cs:code,ds:data,ss:stackdata segmentdw 0123h,0456h,0789h,0abch,0defh,0fedh,0cbah,0987h //定义8个字型数据 16个内存单元data en... 阅读全文
posted @ 2015-07-10 14:35 superzhao 阅读(306) 评论(0) 推荐(0)
摘要:编程:9条指令向0:200-0:23F依次传送0-63assume cs:codesgcodesg segmentmov bx,0mov ds,bxmov bx,200Hmov cx,40Hs:mov ds:[bx],bxinc bxloop smov ax,4c00Hint 21Hcodesg e... 阅读全文
posted @ 2015-07-01 13:57 superzhao 阅读(734) 评论(0) 推荐(0)
摘要:1.[bx]与内存单元 [bx]是指 段地址在DS中,偏移地址在bx中的内存单元2.loop 用于描述循环3.我们定义的描述性符号 "()" 寄存器: (ax/al)表示ax/al寄存器中的内容 段寄存器: ((ds)*16+(bx))表示段地址为ds内容,偏移地址为bx内容的内存单元的内... 阅读全文
posted @ 2015-06-30 18:21 superzhao 阅读(1826) 评论(0) 推荐(0)
摘要:1)将下列程序保存为t1.asm,生成t1.exeassume cs:codesgcodesg segment mov ax,2000H mov ss,ax mov sp,0 add sp,10 pop ax pop bx push ax push bx pop ax pop b... 阅读全文
posted @ 2015-06-30 17:22 superzhao 阅读(455) 评论(0) 推荐(0)
摘要:4.1一个源文件从写出到执行的过程a.编写源文件(伪指令+汇编指令)b.编译连接c.执行4.2源程序程序4.1assume cs:codesg //将段codesg与cs段寄存器关联,表示这是一个代码段(指令段)codesg segment //段开始 段名为codesg mov a... 阅读全文
posted @ 2015-06-30 17:06 superzhao 阅读(166) 评论(0) 推荐(0)
摘要:1.在Debug中D、E、A、U命令访问内存地址时候可以用段寄存器代替直接给出段地址2.注意在修改SS的操作如 mov ss,ax mov ss,[0] pop ss都会与下一条修改SP的操作一起执行,不会断开 阅读全文
posted @ 2015-06-28 17:11 superzhao 阅读(322) 评论(0) 推荐(0)
摘要:3.1内存中字的存储CPU中寄存器是16位的,可以用高低字节存储一个字,但是每个内存单元是8位的,只能存储一个字节,所以内存中用相邻2个内存单元存储一个字的高低字节如:20000数值(4E20H)在地址0的内存单元数值为20H,在地址1的内存单元数值为4EH 两个内存单元存储一个字型数据叫做一个字... 阅读全文
posted @ 2015-06-26 17:11 superzhao 阅读(1354) 评论(0) 推荐(0)
摘要:Debug的使用:Debug 是DOS和Windows 实模式 (8086方式)的调试器,可以查看修改寄存器内容以及内存内容,机器码级别Debug命令: 1)R命令:显示或修改寄存器内容 -r 显示所有寄存器及内容,且在末尾显示当前CS:IP指向的内存单元的指令 -r ax 修改ax... 阅读全文
posted @ 2015-06-26 14:42 superzhao 阅读(1187) 评论(0) 推荐(0)
摘要:一个典型的CPU由运算器、控制器、寄存器组成,内部总线连接各部分器件寄存器是程序员可以用指令读写的部件,通过改变寄存器里的内容从而实现控制CPU,不同CPU 寄存器的个数结构是不一样的,8086有14个寄存器2.1通用寄存器 8086所有的寄存器都是16位的,可以存放2个字节,AX、BX、CX、D... 阅读全文
posted @ 2015-06-25 18:18 superzhao 阅读(490) 评论(0) 推荐(0)
摘要:1.1机器语言:纯二进制1.2汇编语言:是对机器语言的轻微抽象1.3汇编语言的组成: a.汇编指令:机器码的助记符,有对应的机器码 * 是核心 b.伪指令:没有机器码,由编译器执行,计算机不执行 c.其他符号: 如+-*/ 由编译器识别,没有机器码1.4存储器: 就是内存, 指令和数据存在此处... 阅读全文
posted @ 2015-06-25 15:06 superzhao 阅读(294) 评论(0) 推荐(0)