




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、128086CPU的指令格式8086CPU的指令系统38086CPU的寻址方式第三章 指令系统DEBUG程序 “开始”“运行”DEBUG *.com*.exe “开始”“运行”CMD,DEBUG *.com*.exe 启动后显示命令提示符“”,后接一闪烁光标,等待你输入命令 DEBUG是DOS下汇编语言专用调试程序。可对*.COM程序进行完全的调试保存,对*.EXE程序只能调试不能保存。DEBUG的启动DEBUG启动后的状态 CS、DS、ES、SS指向自由空间的底部,具体值与操作系统有关。 AX、BX、CX、DX、BP、SI、DI均为0000H IP为0100H,SP为0FFEEH DEBUG
2、中的所有数据均为16进制DEBUG的操作命令1、汇编命令 A(Assembly) -A -A地址 2、反汇编命令 U(Unassembly) -U 当前地址CS:IP反汇编32字节指令 -U 地址 3、寄存器修改命令 R(Register) -R -R 寄存器名4、内存显示命令 D(Dump) -D -D地址 显示连续128字节的内容段地址偏移量内存内容ASCII码5、内存修改命令 E -E 地址 -E 地址 内容表 -E100 f3abc8d-E110 A-E120 1020304050C60OK!6、运行命令G(Go) -G -G 地址 -G100 从CS:IP=CS:100H开始执行7、
3、跟踪命令T(Trace) -T -T =地址 从当前CS:IP或指定IP执行一条指令后暂停,遇到子程序调用或软中断指令则跟踪进入。8、单步命令P(Step) -P -P =地址 从当前CS:IP或指定IP执行一条指令后暂停,将子程序调用或软中断指令作为一条指令执行。9、文件命名命令N(Name) -N 文件名-N 10、文件装入命令L(Load) -L11、将文件写入磁盘命令W(Write) -WCX:文件长度的低16位BX:文件长度的高16位12、端口输入命令I(Input) -I 端口地址 -I 3F813、端口输出命令O(Output) -O 端口地址 数据 -O 3F8 AA14、退出
4、DEBUG命令Q(Quit) -Q其它DEBUG命令及更详细的使用方法参见附录H指令系统 操作码助记符 操作数助记符;注释标号:指令格式指令构成的基本原则 源、目的操作数的字长一致 源、目的操作数不能同为内存单元 立即数不能作目的操作数指令分类 数据传送指令 算术运算指令 逻辑运算与移位指令 串操作指令 控制转移指令 处理机控制指令数据传送指令(14条) 实现在寄存器、存储器及I/O端口之间传送数据 除标志传送指令外,指令执行结果都不影响标志寄存器分类功能助记符格式操作通用数据传送(5条)传送 交换压入堆栈弹出堆栈查表转换MOV d,sXCHG d,sPUSH sPOP dXLATdsdsSP
5、SP2,(SP)sd(SP),SPSP2ALDS:BXAL地址传送(3条)取有效地址取逻辑地址(指针)取逻辑地址(指针)LEA reg16,sLDS reg16,sLES reg16,sreg16s的有效地址reg16(s)的偏移地址,DS(s)的段地址reg16(s)的偏移地址,ES(s)的段地址标志传送(4条)标志寄存器送AHAH送标志寄存器标志入栈标志出栈LAHFSAHFPUSHFPOPFAHF的低8位AHF的低8位SPSP2,(SP)FF(SP),SPSP2输入输出(2条)从I/O端口输入数据数据输出至I/O端口IN 累加器,端口地址OUT 端口地址,累加器累加器(端口地址)(端口地址
6、)累加器通用数据传送1、MOV指令 格式:MOV d,s 功能: (d) (s) 说明:将s的内容传送给d,s保持不变内 存立即数AH,ALBH,BLCH,CLDH,DLAX,BXCX,DXSI,DIBP,SPCSDSSSES【例】MOVAX,BXMOVAH,DLMOVCL,SIMOVDS,SIMOVDI,SIMOVDI,DHMOVCX,30HMOVBYTE PTR SI,04MOVBX,CXMOVWORD PTR DI,100H不影响标志位d不能是CS和立即数d、s不同为段寄存器和存储器 MOV DS, ES立即数不能直接送段寄存器 MOV DS, 2000HMOV AX,ESMOV DS,
7、AXMOV AX,2000HMOV DS,AX 存储器立即数通用寄存器DS、ES、SSCS数据传送方向示意图MOV D,S 2、 XCHG 指令 格式: XCHG d,s 功能: (d) (s) 说明:交换s和d的内容,s和d的内容都变化内 存AH,ALBH,BLCH,CLDH,DLAX,BXCX,DXSI,DIBP,SP【例】 MOV AX,1200H MOV BX,2900HXCHGAX,BX指令执行后:AX=2900H BX=1200HXCHGCL,ALXCHGDI,DXXCHGBX,CX不影响标志位不允许使用立即数 XCHG AX, 2000H不允许使用段寄存器 XCHG CS, DX
8、d、s不同为存储器 XCHG SI, DI 进栈指令PUSH 格式: PUSH s16 功能: SPSP2,(SP)s16 说明:将s指定的16位操作数压入堆栈 3、 堆栈操作指令PUSH和POP 出栈指令POP 格式: POP d16 功能: d16(SP),SPSP2 说明:将栈顶的16位操作数弹出,送入d 堆栈是存储器中的特定区域,在堆栈中对数据采取特殊的存取规则即“后进先出(LIFO或FILO)”。堆栈设在堆栈段中,段地址在段寄存器SS中。在堆栈中始终有一个栈顶单元,该单元的段内偏移地址存放在堆栈指针寄存器SP中(初始值可以设置)。当压入数据时,数据被存放在栈顶上面的2个字节单元中,且
9、SP自动减2以指向新的栈顶;当弹出数据时是将栈顶的2个字节单元数据弹出至d,且SP自动加2又指向新的栈顶。总之,不管压入还是弹出总是对栈顶进行操作,且栈顶指针SP会自动修改以保持始终指向新的栈顶。 【例】设SS8000H,SP1000H,AX1122H,BX3344H,执行以下指令:PUSHAXPUSHBXPOPAX 不影响标志位不允许使用立即数 PUSH 2000H必须以字为单位 PUSH DL POP AHd、s可以是16位通用寄存器、存储器或段寄存器,但POP指令不能用CS POP CS判断下列指令的对错:PUSH12HPUSH1234HPOP1000HPUSHCSPOPCSPUSHCL
10、POPESPUSHSIPOPDXPUSHES:10HPOPBXSI+08H 4、 查表转换指令XLAT 格式: XLAT 功能: ALDS:BXAL 说明:将数据段中首单元偏移地址在BX,顺序号在AL的表的内容取出送AL。 【例】七段LED数码管上显示数字09,可以将每个数字所对应的显示代码制成一张表,并按数字顺序存放在数据段中,假设表的首单元偏移地址为1000H,如右图所示。现若要得到数字7的显示代码,执行如下指令: MOVBX,1000HMOVAL,7XLAT则AL中得到数字7的显示代码78H。 不影响标志位字节表格(长度不超过255)首地址 (BX) 需转换代码 AL地址传送5、 取有效
11、地址指令LEA(Load EA) 格式: LEA reg16,mem 功能: reg16 memEA 说明:将mem指定的存储器操作数的有效地址取至16位的通用寄存器reg16中 。 【例】 LEAAX,2012H; 相当于MOV AX,2012H MOV BX,1200H LEASI,BX; 相当于MOV SI,BX LEADI,BX+SI; 无直接对应指令,DI (BX+SI) LEADX,SI-0100H; DX ( SI-0100H )不影响标志位reg16是16位通用寄存器,不能是段寄存器mem必须为存储器寻址方式6、取逻辑地址(指针)指令 LDS和LES 格式: LDS reg16
12、,mem 功能: reg16 (mem),DS (mem2) 说明:将mem指定的存储器双字中存放的逻辑地址(指针)送16位通用寄存器reg16 和DS 。 格式: LES reg16,mem 功能: reg16 (mem),ES (mem2) 说明:将mem指定的存储器双字中存放的逻辑地址(指针)送16位通用寄存器reg16 和ES 。 SI 56H 34H 9AH2012HDS=1000H2013H2014H2015H 78H0000H DS(DS)(SI)56H34H9AH78HLDSSI,2012H操作:SI (2013H,2012H)DS (2015H,2014H)执行后:SI=56
13、34H,DS=9A78HLESDI,2012H操作:DI (2013H,2012H)ES (2015H,2014H)执行后:DI=5634H,ES=9A78H标志传送7、标志寄存器(PSW/FR)与AH之间的传送指令LAHF和SAHF 格式: LAHF;(Load AH from Flag register) 功能: AHPSW70 说明:将标志寄存器PSW的低8位传送到寄存器AH中 。 格式: SAHF;(Save AH to Flag register) 功能: PSW70AH 说明:将寄存器AH内容传送到标志寄存器PSW的低8位中。 LAHF不影响标志位,SAHF影响标志位8、标志寄存器
14、进出栈指令PUSHF和POPF 格式: PUSHF;(PUSH Flag register) 功能: SPSP2,(SP)PSW 说明:将标志寄存器PSW压入堆栈,堆栈指针减2。 格式: POPF;(POP Flag register) 功能: PSW(SP),SPSP2 说明:将堆栈栈顶内容弹出至标志寄存器PSW,堆栈指针加2。 PUSHF不影响标志位,POPF影响标志位输入输出 格式: IN AL,port8 IN AL,DX IN AX,port8 IN AX,DX 功能: 从I/O端口中读取一个或两个字节到CPU内的AL或AX寄存器。 说明:port8是8位端口地址,DX是16位端口地
15、址,也可是8位端口地址。 8位端口地址可直接在指令中出现,16位端口地址不能直接在指令中出现,必须事先存放在DX寄存器中。AL是从端口中读取一个字节的数据,而AX是从端口的连续两个地址中分别读取一个字节共两个字节,存放到AX寄存器中。9、端口输入指令IN(INput from port)【例】 INAL,20H;AL(20H) INAX,40H;AL(40H),AH(41H) MOVDX,03F8H INAL,DX;AL(3F8H) MOVDX,280H INAX,DX;AL(280H),AH(281H)不影响标志位端口地址为00FFH时,可直接在指令中指定,端口地址为100HFFFFH时,必须放在DX中 IN AL,400H只能传送到累加器(AL/AX)中 IN CL,DX IN BX,30H 格式: OUT port8,AL OUT DX,AL OUT port8,AX OUT DX,AX 功能: 向I/O端口中输出一个或两个字节。10、端口输出指令O
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年装订活动及印刷用附件合作协议书
- 2024年新乡冠英高级中学招聘教师考试真题
- 浙江绍兴文理学院招聘笔试真题2024
- 小学科学活动与教学计划设计
- 娄底市新化县中医医院招聘笔试真题2024
- 淮南联合大学招聘硕士研究生笔试真题2024
- 体育教练员职业道德自查与整改措施
- 人寿保险跨界合作发展计划
- 2025年中高压变量叶片泵项目发展计划
- 六年级学困生社会适应能力计划
- KEGG代谢通路中文翻译
- GB∕T 17832-2021 银合金首饰 银含量的测定 溴化钾容量法(电位滴定法)
- 低成本自动化的开展与案例77页PPT课件
- 梅州市部分饮用水源保护区调整方案
- “重庆环保”标志说明
- 钢结构钢梁连接节点计算
- 地面沉降监测技术要求
- 基本建设项目建设成本管理规定解读
- 金色的鱼钩课本剧
- 印刷机周保养记录
- 官渡之战 ppt
评论
0/150
提交评论