




已阅读5页,还剩3页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
标题 汇编语语言命令详解汇编命令详解名称解释格式a(Assemble)逐行汇编aaddressc(Compare)比较两内存块c range address d(Dump)内存16进制显示daddress或drangee(Enter)修改内存字节e address f(fin)预置一段内存f range list g(Go)执行程序g=addressaddress.h(Hexavithmetic)制算术运算h value value i(Input)从指定端口地址输入i pataddress l(Load)读盘laddressdriver seetor m(Move)内存块传送m range address n(Name)置文件名n filespecfilespec.o(Output)从指定端口地址输出o portadress byte q(Quit)结束q r(Register)显示和修改寄存器rregister names(Search)查找字节串s range list t(Trace)跟踪执行t=addressvalueu(Unassemble)反汇编uaddress或range w(Write)存盘waddressdriver sector secnum?联机帮助?debug小汇编a命令debug小汇编a命令是一个很有用的功能,许多的小程序都要他来做。编一些小程序比汇编要来得方便,快洁。在Debug中,中断是非常有用的,首先,让我们先了解一下中断。所谓中断,其实,就是,当你做某事时,有人过来找你有其他事,你先放下手中的事(计算机中,称为保护现场),再去与叫你的那个人办事去,等完了,你又回,接着做刚才的事。这是个很通俗的讲法。计算机在运行时,也会出现这种情况,我们叫之中断。下面是他的一些常用中断向量的入口值详解:(记住哦,很用的.呵呵)IBM PC中断int10 ooH屏幕方式设置入口:AH=0,AL=显示方式代码(0-6)0:40*25黑白1:40*25彩色2:80*25黑白3:80*25彩色文本4:320*200彩色5:320*200黑白6:640*200黑白图形模式7:80*25单色字符(单色显示器)0BH色彩设置入口:AH=0B,BL=0设背景色,BH=0-15 BL=1设调色码,BH=0-1 0CH写图形点入口:AH=0C,CX:DX=列号:行号,AL=颜色ODH读图形点入口:AH=0D,CX:DX=列号:行号返回:AL=颜色0EH在当前页、当前光标处写字符入口:AH=0E,AL=字符的ASCII码,BL=前景色OFH显示器状态入口:AH=0F返回:AL=当前显示器方式,AH=屏幕列数,BH=当前页号01H光标设置入口:AH=1,CH=光标起始行号(00-0C),CL=光标结束行号(00-0C)注:CHCL 02H光标定位入口:AH=2,BH=页号,DH:DL=起始行:列03H读光标位置入口:AH=3,BH=页号。返回:DH:DL=起始行:列06H窗口上卷入品:AH=6,AL=窗口上卷行数,CH:CL-DH:DL窗口坐标注:AL=0卷动整个窗口07H窗口下卷入口:AH=7,AL=窗口下卷行数,CH:CL-DH:DL窗口坐标08H读当前光标处字符和属性入口:AH=8,BH=页号。返回:AH:AL=字符的颜色:字符的ASCII码注:颜色代码见下对照表09H:在当前光标处写字符和属性注:光标不下移入口:AH=9,BH=页号,BL:AL=字符的颜色:字符的ASCII码,CX=重复次数1 23 45 67 8BL RG BI RG B闪烁字符底色加亮字符颜色中断向量号表中断号解释中断号解释0除数为0错19引导装入程序1音步中断1A日时调用2不可屏蔽中断NMI 1B键盘阻断时得到控制权3断电中断(CCH)1C时钟中断时得到控制权4溢出中断1D指向CRT初始参数表5屏幕打印中断1E指向盒带参数表6-7保留1F 1KB图形模式8计时器中断(18.2秒)20结束DOS程序9键盘中断21 DOS功能调用A-D保留22结束地址(建义用EXEC)E软盘机中断23 DOS Crtl-Break退出地址F保留24 DOS致命错向量10屏幕I/O调用25 DOS绝对磁盘读11设备检查调用26 DOS绝对磁盘写12存储器检查调用27结束程序并驻留(建义用31h)13软盘机I/O调用28-3F DOS保留14 RS-233I/O调用40-7F未用15盒带机I/O调用80-85 BASIC保留16键盘I/O调用86-F0 BASIC解释程序用17打印机I/O调用F1-FF未用18 ROM-BASIC入口指令名详解call指令(过程调用)(控制指令-长转移)详解:段内直接调用段内间接调用(寄存器)段内间接调用(存储器)段间直接调用段间间接调用指令名jmp指令(无条件转移指令)(控制指令-长转移)详解:段内直接跳转短段内直接跳转段内间接跳转(寄存器)段内间接跳转(存储器)段间直接跳转段间间接跳转指令名ret指令(过程返回)(控制指令-长转移)详解:段内返回段内返回立即数加于sp段间返回段间返回立即数加于sp na/jnbe指令(控制指令-短转移)不小于或不等于时转移jae/jnb指令(控制指令-短转移)大于或等于时转移jb/jnae指令(控制指令-短转移)小于转移jbe/jna指令(控制指令-短转移)小于或等于转移jg/jnle指令(控制指令-短转移)大于转移jge/jnl指令(控制指令-短转移)大于或等于转移jl/jnge指令(控制指令-短转移)小于转移jle/jng指令(控制指令-短转移)小于或等于转移je/jz指令(控制指令-短转移)等于转移jne/jnz指令(控制指令-短转移)不等于转移jc指令(控制指令-短转移)有进位时转移jnc指令(控制指令-短转移)列进位时转移jno指令(控制指令-短转移)不溢出时转移jnp/jpo指令(控制指令-短转移)奇偶性为奇数时转移jns指令(控制指令-短转移)符号位为0转移jo指令(控制指令-短转移)溢出转移jp/jpe指令(控制指令-短转移)奇偶性为偶数时转移js指令(控制指令-短转移)符号位为1时转移loop指令(循环控制指令-短转移)cx不为0时循环loope/loopz指令(循环控制指令-短转移)cx不为0且标志z=1时循环loopne/loopnz指令(循环控制指令-短转移)cx不为0且标志z=0时循环jcxz指令(循环控制指令-短转移)cx为0时转移int指令(中断指令)中断指令(后详解)into指令(中断指令)溢出中断iret指令(中断指令)中断返回指令名shl指令(逻辑左移)sal指令(算术左移)shr指令(逻辑右移)sar指令(算术右移)寄存器,1 rol指令(循环左移)寄存器,cl ror指令(循环右移)存储器,1 rcl指令(通过进位的循环左移)存储器,cl rcr指令(通过进位的循环右移)(逻辑运算)not指令(取反运算)寄存器求反(逻辑运算)存储器求反and指令(与运算)(逻辑运算)寄存器and寄存器寄存器寄存器and存储器寄存器存储器and寄存器存储器立即数and存储器存储器立即数and累加器累加器or指令(或运算)(逻辑运算)寄存器or寄存器寄存器寄存器or存储器寄存器存储器or寄存器存储器立即数or存储器存储器立即数or累加器累加器test指令(测试)(逻辑运算)寄存器test寄存器寄存器test存储器寄存器test立即数存储器test立即数累加器test立即数movs指令(串传送)(字符串操作指令)单个传送重复传送cmps指令(串比较)(字符串操作指令)单个比较重复比较scas指令(串扫描)(字符串操作指令)单个搜索重复搜索lods指令(装入串)(字符串操作指令)单个装载重复装载stos指令(保存串)(字符串操作指令)单个存储重复存储mov指令(传送字或字节)(数据传送命令)寄存器与寄存器间传送存储器与寄存器间传送立即数传送给存储器立即数传送给寄存器存储器传送给累加器累加器传送存储器寄存器传送给段寄存器存储器传送给段寄存器段寄存器传送给寄存器段寄存器传送给存储存器pop指令(把字弹出堆栈)(数据传送命令)push指令(把字压入堆栈)存储器寄存器段寄器xchg指令(交换字或字节)(数据传送命令)寄存器与寄存器交换存储器与寄存器交换寄存器与累加器交换in指令(端口输入)(数据传送命令)直接输入间接输入out指令(端口输出)(数据传送指令)直接输出间接输出add指令(加法)(算术指令)adc指令(带进位加法)寄存器+寄存器寄存器寄存器+存储器寄存器存储器+寄存器存储器立即数+存储器存储器立即数+累加器累加器inc指令(加1)(算术指令)存储器增量寄存器增量sub指令(减法)(算术指令)sbb指令(带借位减法)寄存器-寄存器寄存器寄存器-存储器寄存器存储器-寄存器存储器立即数-存储器存储器立即数-累加器累加器dec指令(减1)(算术指令)存储器减量寄存器减量nec指令(求反,以0减之)寄存器求补存储器求补cmp指令(比较)(算术指令)寄存器与寄存器比较寄存器与存储器比较寄存器与立即数比较存储器与立即数比较累加器与立即数比较mul指令(无符号乘法)(算术指令)imul指令(整数乘法)与8位寄存器相乘与16位寄存器相乘与8位存储单元相乘与16位存储单元相乘div指令(无符号除法)(算术指令)idiv指令(整数除法)被8位寄存器除被16位寄存器除被8位存储单元除被16位存储单元除Debug实战1.查看主板的生产日期,版本D ffff:05 Dfe00:0e 2.模拟Rest键功能A:100 jmp ffff:0000:105 g3.快速格式化软盘L 100 00*插入一张己格式化软盘W 100 00*放入一张欲格式化软盘注:*分别为:720K e|1.2M id|1.44M 21 4.硬盘格式化两种方法(1)G=c800:05(2)A 100 mov ax,0703 mov cx,0001 mov dx,0080 int 13 int 3g 100 5.加速键盘A mov ax,0305 mov bx,0000 int 16 int 20 rcx 10 wq 6.关闭显示器(恢复时,按任意键)A mov ax,1201 mov bl,36 int 10 mov ah,0 int 16 mov ax,1200 int 10 rcx 10 wq 7.硬盘DOS引导记录的修复在软驱中放入一张己格式化软盘debug-l 100 20 1-w 100 050 1把软盘放入故障机软驱中debug-l 100 050 1-w 100 20 1-q 8.清coms中setup口令debug-a mov bx,0038 mov cx,0000 mov ax,bx out 70,al inc cx cmp cx,0006 jnz 0106 int 20-rcx:20--w-q注:以上适合super与dtk机,对于ast机,因为他的口令放在coms的4ch-51h地址处,只要将:mov bx,0038改为:mov bx,004c即可9.取消coms的密码(将coms数据清为初始化)-o 70,10-o 71,10-g-q 10.将硬盘主引导记录保存到文件中debug-a mov ax,0201 mov bx,0200 mov cx,0001 mov dx,0080 mov int 13 int 3-rcx:200-nboot.dat-w-q 11.调用中断实现重启计算机(可以成文件)debug-a int 19 int 20-rcx:2--w-q DEBUG主要命令DEBUG是为汇编语言设计的一种高度工具,它通过单步、设置断点等方式为汇编语言程序员提供了非常有效的调试手段。一、DEBUG程序的调用在DOS的提示符下,可键入命令:C:DEBUGD:PATHFILENAME.EXTPARM1PARM2其中,文件名是被调试文件的名字。如用户键入文件,则DEBUG将指定的文件装入存储器中,用户可对其进行调试。如果未键入文件名,则用户可以用当前存储器的内容工作,或者用DEBUG命令N和L把需要的文件装入存储器后再进行调试。命令中的D指定驱动器PATH为路径,PARM1和PARM2则为运行被调试文件时所需要的命令参数。在DEBUG程序调入后,将出现提示符,此时就可用DEBUG命令来调试程序。二、DEBUG的主要命令1、显示存储单元的命令D(DUMP),格式为:_Daddress或_Drange例如,按指定范围显示存储单元内容的方法为:-d100 120 18E4:0100 c7 06 04 02 38 01 c7 06-06 02 00 02 c7 06 08 02 G.8.G.G.18E$:0110 02 02 bb 04 02 e8 02 00-CD 20 50 51 56 57 8B 37.;.h.M PQVW.7 18E4:0120 8B其中0100至0120是DEBUG显示的单元内容,左边用十六进制表示每个字节,右边用ASCII字符表示每个字节,表示不可显示的字符。这里没有指定段地址,D命令自动显示DS段的内容。如果只指定首地址,则显示从首地址开始的80个字节的内容。如果完全没有指定地址,则显示上一个D命令显示的最后一个单元后的内容。2、修改存储单元内容的命令有两种。输入命令E(ENTER),有两种格式如下:第一种格式可以用给定的内容表来替代指定范围的存储单元内容。命令格式为:-E address例如,-E DS:100 F3XYZ8D其中F3,X,Y,Z和各占一个字节,该命令可以用这五个字节来替代存储单元DS:0100到0104的原先的内容第二种格式则是采用逐个单元相继修改的方法。命令格式为:-E address例如,-E DS:100则可能显示为:18E4:0100 89.-如果需要把该单元的内容修改为78,则用户可以直接键入78,再按空格键可接着显示下一个单元的内容,如下:18E4:0100 89.78 1B.-这样,用户可以不断修改相继单元的内容,直到用ENTER键结束该命令为止。填写命令F(FILL),其格式为:-F range list例如:-F 4BA:0100 5F3XYZ8D使04BA:01000104单元包含指定的五个字节的内容。如果list中的字节数超过指定的范围,则忽略超过的项;如果list的字节数小于指定的范围,则重复使用list填入,直到填满指定的所有单元为止。3)检查和修改寄存器内容的命令R(register),它有三种格式如下:显示CPU内所有寄存器内容和标志位状态,其格式为:-R例如,-r AX=0000 BX=0000 CX=010A DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000 DS=18E4 ES=18E4 SS=18E4 CS=18E4 IP=0100 NV UP DI PL NZ NA PO NC 18E4:0100 C70604023801 MOV WORD PTR0204,0138 DS:0204=0000显示和修改某个寄存器内容,其格式为:-R register name例如,键入-R AX系统将响应如下:AX F1F4:即AX寄存器的当前内容为F1F4,如不修改则按ENTER键,否则,可键入欲修改的内容,如:-R bx BX 0369:059F则把BX寄存器的内容修改为059F。显示和修改标志位状态,命令格式为:-RF系统将响应,如:OV DN EI NG ZR AC PE CY-此时,如不修改其内容可按ENTER键,否则,可键入欲修改的内容,如:OV DN EI NG ZR AC PE CY-PONZDINV即可,可见键入的顺序可以是任意的。4)运行命令G,其格式为:-G=address1address2address3其中,地址1指定了运行的起始地址,如不指定则从当前的CS:IP开始运行。后面的地址均为断点地址,当指令执行到断点时,就停止执行并显示当前所有寄存器及标志位的内容,和下一条将要执行的指令。5)跟踪命令T(Trace),有两种格式:逐条指令跟踪-T=address从指定地址起执行一条指令后停下来,显示所有寄存器内容及标志位的值。如未指定地址则从当前的CS:IP开始执行。多条指令跟踪-T=addressvalue从指定地址起执行n条指令后停下来,n由value指定。6)汇编命令A(Assemble),其格式为:-Aaddress该命令允许键入汇编语言语句,并能把它们汇编成机器代码,相继地存放在从指定地址开始的存储区中。必须注意:DEBUG把键入的数字均看成十六进制数,所以如要键入十进制数,则其后应加以说明,如100D。7)反汇编命令U(Unassemble)有两种格式。从指定地址开始,反汇编32个字节,其格式为:-Uaddress例如:-u100 18E4:0100 C70604023801 MOV WORD PTR0204,0138 18E4:0106 C70606020002 MOV WORD PTR0206,0200 18E4:010C C70606020202 MOV WORD PTR0208,0202 18E4:0112 BBO4O2 MOV BX,0204 18E4:0115 E80200 CALL 011A 18E4:0118 CD20 INT 20 18E4:011A 50 PUSH AX 18E4:011B 51 PUSH CX 18E4:011C 56 PUSH SI 18E4:011D 57 PUSH DI 18E4:011E 8B37 MOV SI,BX如果地址被省略,则从上一个U命令的最后一条指令的下一个单元开始显示32个字节。对指定范围内的存储单元进行反汇编,格式为:-Urange例如:-u100 10c 18E4:0100 C70604023801 MOV WORD PTR0204,0138 18E4:0106 C70606020002 MOV WORD PTR0206,0200 18E4:010C C70606020202 MOV WORD PTR0208,0202或-u100 112 18E4:0100 C70604023801 MOV WORD PTR0204,0138 18E4:0106 C70606020002 MOV WORD PTR0206,0200 18E4:010C C70606020202 MOV WORD PTR0208,0202可见这两种格式是等效的。8)命名命令N(Name),其格式为:-N filespecsfilespecs命令把两个文件标识符格式化在CS:5CH和CS:6CH的两个文件控制块中,以便在其后用L或W命令把文件装入存盘。filespecs的格式可以是:d:pathfilename.ext例如,-N myprog-L-可把文件myprog装入存储器。9)装入命令(Load),有两种功能。把磁盘上指定扇区范围的内容装入到存储器从指定地址开始的区域中。其格式为:-Laddressdrive sector sector装入指定文件,其格式为:-Laddress此命令装入已在CS:5CH中格式化了文件控制块所指定的文件。如未指定地址,则装入CS:0100开始的存储区中。10)写命令W(Write),有两种功能。把数据写入磁盘的指定扇区。其格式为:-W address drive sector sector把数据写入指定的文件中。其格式为:-Waddress此命令把指定的存储区中的数据写入由CS:5CH处的文件控制块所指定的文件中。如未指定
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 自动化施工方案
- 幼儿园大班《滑梯的回忆》教案
- 建筑施工特种作业-高处作业吊篮安装拆卸工真题库-2
- 容错性定义题目及答案
- 1 1 集合-2026版53高考数学总复习A版精炼
- 2023-2024学年云南省保山市高二下学期期末质量检测数学试题(解析版)
- 2023-2024学年山东省青岛市莱西市高二下学期期末考试数学试题(解析版)
- 新疆盛鼎龙新材料科技有限责任公司2500吨-年高效偶联剂5000吨-年甲基苯基硅油及3万吨-年硅酮胶项目环评报告
- 2025年秋三年级上册语文同步教案 8 总也倒不了的老屋
- 物流公司和客户合作协议
- 微信授权协议书范本
- 中国糖尿病足诊治指南(2024版)解读课件
- 场地合作分成协议合同
- 2025年中国高吸水性树脂行业市场发展现状研究及投资战略咨询报告
- 老年护理技能和知识培训
- 中职电子商务基础理论试题及答案
- 驾驶员保密管理制度培训
- 市政工程沟槽开挖与沟槽回填专项施工方案
- 2025年吉林长春市轨道交通集团有限公司招聘笔试参考题库含答案解析
- 制造业运营总监岗位职责
- 广州理工学院《计算机组成原理理论》2023-2024学年第二学期期末试卷
评论
0/150
提交评论