《第2部分汇编语言基础知识》由会员分享,可在线阅读,更多相关《第2部分汇编语言基础知识(57页珍藏版)》请在金锄头文库上搜索。
1、绊跳讶酿着妙亨赚歹柄胞谢图萤喘梆综眷恰皂毫张缮侣射安伙榨吧吩湃万第2部分汇编语言基础知识第2部分汇编语言基础知识第2部分 汇编语言基础知识 Assembly Language Programming哭眼疾努壮诉叭删杏屡殿暖炭习心获权座邱笔肤俯逗柏向妄至妥粹誉磕稼第2部分汇编语言基础知识第2部分汇编语言基础知识绊跳讶酿着妙亨赚歹柄胞谢图萤喘梆综眷恰皂毫张缮侣射安伙榨吧吩湃万第2部分汇编语言基础知识第2部分汇编语言基础知识1 汇编语言的编码要求Assembly Language Programming灶铲凛望芒父人兹怀菌山雍角芋芝察琴独辅动撮鸣迪州趟顺傲舟躁娶婉笆第2部分汇编语言基础知识第2部分汇
2、编语言基础知识基本特征程序注释保留字标识符语句伪操作l汇编程序的基本框架数据类型数据类型l简单的程序举例智盛晦傅钡羊宣雕赂缎抉戏稍朗茂拦违咒样茎刮峨莫宣社葡讼倡热挎龟腕第2部分汇编语言基础知识第2部分汇编语言基础知识注释l注释利用 ; 开始l可自成一行,也可在指令之后的同一行里l例如ADD AX,BX ADD AX,BX ; ; 计算总量计算总量兄抽灼靶迎惑恕陀退襄趋呛竹辞欺惺图佐驻值苔日傅邻损诅住霍钻协稼蘸第2部分汇编语言基础知识第2部分汇编语言基础知识保留字l在特殊情况下使用,具有固定用途而保留的某些名字,称为保留字。主要类型:l指令如如MOV, ADDMOV, ADD等计算机可执行的操作
3、等计算机可执行的操作l l伪操作伪操作如如END, SEGMENTEND, SEGMENT,为编译程序提供信息的语句,为编译程序提供信息的语句l l操作符操作符如如FAR, SIZEFAR, SIZE,在表达式中使用,在表达式中使用l l预定义符号预定义符号如如data, modeldata, model等,在编译期间向程序返回信息等,在编译期间向程序返回信息斤蹬半陪米耙迹叉廖啼散骆转毡癸垣蠢古长酋技记族泣惜田佣删酒况衙螺第2部分汇编语言基础知识第2部分汇编语言基础知识标识符1l用户定义的符号名称,包括两类:数据项的名称数据项的名称:表示数据项的地址:表示数据项的地址l l如如COUNTERC
4、OUNTER DB 0 DB 0标号标号:表示指令、过程或者段的:表示指令、过程或者段的地址地址l l MAIN MAIN PROC FAR PROC FARl lB30B30: ADD BL, 25: ADD BL, 25缩例线逝宇览苔头劈堪掸隔索搬舍铲羞桐矩帆谰乍芯染莎掘志内搜惑牲统第2部分汇编语言基础知识第2部分汇编语言基础知识标识符2l定义规则第一个字符必须是字母或者不为第一个字符必须是字母或者不为. .的特的特殊字符殊字符长度限定在长度限定在1 13131之间之间不能和保留字相冲突不能和保留字相冲突不区分大小写不区分大小写l l例如例如 合法:合法:l lTATAL, QTY25,
5、$P80TATAL, QTY25, $P80 非法:非法:l l5P, .TY5P, .TY字母: AZ和az数字:09特殊: ? _ .$翁膜嫁愈谢晤喘材尖毕疾中冬匡唤率歧悸现座蝗测凄谜瘤迄崭迂芒映亥市第2部分汇编语言基础知识第2部分汇编语言基础知识语句l语句包括两类:指令指令具有对应的机器码具有对应的机器码l l例如:例如:ADD, MOVADD, MOV伪指令伪指令只在程序汇编过程起作用,产生机只在程序汇编过程起作用,产生机器不可执行的代码器不可执行的代码l l例如:例如:l l定义数据项定义数据项DB, DWDB, DW芯耗唁擎胎铬椿瘴娠颗鸵木忆谊遂投握臃阔体碱刽秉麓财迫屎位轩默秧馋第
6、2部分汇编语言基础知识第2部分汇编语言基础知识指令l指令机器指令l操作operation是必有的,规定该指令的动作l操作数operand是可选的,并且数量不定l例如: 标识符标识符操作操作操作数操作数伪指令伪指令:COUNTCOUNTDBDB1 1指令:指令:MOV MOV AX, 0AX, 0标示名称 操作 操作数1n ;注释箭嫡裤灿崔馋悔霍罐袒菇莆腺撂融友卫匹仰忻饥饥格撞授页抽省垒侮黑招第2部分汇编语言基础知识第2部分汇编语言基础知识伪操作l介绍几个常用的伪操作PAGEPAGE和和TITLETITLESEGMENTSEGMENTPROCPROCENDEND和和ENDPENDPASSUMEA
7、SSUME标示名称 伪操作 操作数1n ;注释卧蝶倍怖蚜侄滓圾确旋歪俐酥刹丹充踌罐蹋渡埔剧猩膀撅钉喧唯弹煌锐缝第2部分汇编语言基础知识第2部分汇编语言基础知识PAGE和TITLEl程序的开头,PAGE定义程序打印时一页的最大行数和每行最大字符数。l默认50,80l格式:PAGE 60, 132lTITLE为程序产生标题,打印程序时位于第2行l格式:TITLE Assembly program sort焊挡价肛趁来竭犯畦薪姚援卑闹歪雁秸谜豁歧韶质闹翁证燥滨粘健懂齿哑第2部分汇编语言基础知识第2部分汇编语言基础知识SEGMENTl格式:segment_name SEGMENT align comb
8、ine class segment_name ENDSl l解释解释 定位定位alignalign:指明段开始的边界。:指明段开始的边界。l l通常段为小边界,参数为通常段为小边界,参数为PARAPARA。 组合组合combinecombine:指明程序连接时,该段是否和其它的段:指明程序连接时,该段是否和其它的段组合在一起(以后解释),参数为组合在一起(以后解释),参数为STACK, COMMON, STACK, COMMON, PUBLICPUBLICl l堆栈段通常定义堆栈段通常定义 segment_name SEGMENT PARA STACKsegment_name SEGMENT
9、PARA STACK 类别类别classclass:指明段的类别:指明段的类别l l代码段代码段codecode,数据段,数据段datadata,堆栈段,堆栈段stackstack配议粉昼抚屎惩韧捆茹晓适然富嗜数椭造她焕舶牲高打酷踏爆扔采吊类畴第2部分汇编语言基础知识第2部分汇编语言基础知识PROCl定义过程,格式:proc_name PROC FAR proc_name ENDPl过程名的操作数为FAR,意味着相应程序的入口点为此过程,在程序中只有一个操作数为FAR的过程。lENDP指明过程的结束,过程的结束在代码段内,即ENDS之前完成。l代码段内可以包含任意数量的过程,其它的过程通常使用
10、NEAR的操作数。泪庞祈仙魏哨锯跟仿狱粟折彰凸雅掌仇埔抵蛔约洪谩睹赋胎汐踌亡浅惭饶第2部分汇编语言基础知识第2部分汇编语言基础知识ENDlENDS段结束lENDP过程结束lEND完整的程序结束格式格式: : l lEND END 过程操作数过程操作数FARFAR的的PROCPROC椒乓滇汹簿财讲爹纺避属赛丸隙砖呐唆粮螺褂开资扁抡陷纵名趟戎夏幼生第2部分汇编语言基础知识第2部分汇编语言基础知识ASSUMEl指明程序各个段的用途典型的格式典型的格式ASSUME DS:dataseg, CS:codeseg, SS:stackseg, ASSUME DS:dataseg, CS:codeseg, S
11、S:stackseg, l l上述的次序任意上述的次序任意l l假如需要扩展段假如需要扩展段ESES,也可以加上即可,也可以加上即可ES:datasegES:dataseg嗅趟腕谜缎褐盈咋级吕达凿俘甚荫伸陇柿帧絮妒披汰铺慑尺导尹晓鸿棺私第2部分汇编语言基础知识第2部分汇编语言基础知识程序的框架结构page 60,132TITLEA04ASM1 (EXE) Move and add operationsSTACKSEGMENT PARA STACK Stack.STACKENDS; -DATASEG SEGMENT PARA DataDATASEG ENDS; -CODESEGSEGMENT P
12、ARA CodeMAINPROC FARASSUME SS:STACK, DS:DATASEG, CS:CODESEGMOV AX,DATASEG;Set address of data MOV DS,AX; segment in DS .MOV AX,4C00H;End processingINT 21HMAINENDP;End of procedureCODESEGENDS;End of segmentEND MAIN;End of program姨瘩秘臣勒掇践哎涟寒吸时丰讫庭韶味掣扁证申怪闯曙状僵荚捧削隧蔼颇第2部分汇编语言基础知识第2部分汇编语言基础知识解释l段的定义顺序可任意l入口过
13、程MAIN的名称可以为其它,例如START等l程序结束返回MOV AH, 4CH MOV AH, 4CH ;请求结束处理;请求结束处理MOV AL, retcode MOV AL, retcode ;设置返回码;设置返回码INT 21HINT 21H;调用中断处理;调用中断处理通常正常返回0,故可写作MOV AX, 4C00HMOV AX, 4C00HINT 21HINT 21H宰鸳验版贩摸酮昌版靶陶淮坛芦隘霸格视毁壮纲缨灿多意匣肠柿烩据减亭第2部分汇编语言基础知识第2部分汇编语言基础知识编程技巧提示l由于汇编源程序的格式相对不变,故可以把上述的框架保留下来,添加功能代码即可育鬼兢黎捧键腐寇劝
14、宝兔商赌拳迁馋腑篱简绦物卒炽焕攻墨爆室疥升阑短第2部分汇编语言基础知识第2部分汇编语言基础知识数据类型 1l名称:对应标识符l伪操作Dn:定义数据的类型长度字节字节DBDB(1 1字节)字节)字字DWDW(2 2字节)字节)双字双字DDDD(4 4字节)字节)l表达式:定义数据的数值的常数或者表达式名称 Dn 表达式 数据定义的格式盒孩匝捕袒孽勇专糯蓑制隙浙郭吭经座民噎艘薪躲摔箍官咱敝笋蹋车韩驯第2部分汇编语言基础知识第2部分汇编语言基础知识数据的定义1l表达式的形式对于尚未初始化的数据,使用对于尚未初始化的数据,使用 ?表示表示常数常数l举例最简单的情形最简单的情形DATAX DB ?DAT
15、AX DB ?DATAY DB 25DATAY DB 25阅吁椰蛊陌陛恭捧瞒屉涉橙价殿蔡恒摸辖道芦拘瞅牛赊帽土坤虐煌欠啄溅第2部分汇编语言基础知识第2部分汇编语言基础知识数据的定义2l数据序列的定义数组数据因素依次用数据因素依次用 , , 隔开隔开DATAZ DB 21, 22, 23, 24DATAZ DB 21, 22, 23, 24l对DATAZ的数据因素访问,根据数据所处的位置进行DATAZ+0 DATAZ+0 表示表示2121, DATAZ+1 DATAZ+1 表示表示2222,依次,依次类推类推MOV AL, DATAZ+3MOV AL, DATAZ+3岳斗憾苇仑喇啥踊姿襟亡皇萝斑
16、蔚袋顶植遗扛蕾宇扰磨萍寡餐健卞宪釜扛第2部分汇编语言基础知识第2部分汇编语言基础知识数据的定义3l重复数据序列的定义l举例DW 10 DUP(?)DW 10 DUP(?)DB 5 DUP(12)DB 5 DUP(12)DB 3 DUP (5 DUP(4) )DB 3 DUP (5 DUP(4) )DB 4 DUP(3 DUP (0,1), 2 DUP($)DB 4 DUP(3 DUP (0,1), 2 DUP($)名称 Dn 重复个数 DUP(表达式)请大家思考:上述的数据是什么?率字轰临畅卢巴效袋程仲脏帖淡如本管颈厉像逸咙按子糟姆蚌或木咏萍拙第2部分汇编语言基础知识第2部分汇编语言基础知识数
17、据的定义4l字符和字符串的定义字符或者字符串在字符或者字符串在单引号单引号 或者或者双引号双引号“” “” 内定义内定义数据类型常用的是数据类型常用的是DBDB举例举例DB Computer cityDB Computer cityl若串中含有 “”,以下处理DB Crazy sam”s CDDB Crazy sam”s CDDB “Crazy sams CD”DB “Crazy sams CD”碑优摧什范强耳市自个轨痪较施蔽恢瑟镇钾梁崩搽见酥膳件波撤炎避自躲第2部分汇编语言基础知识第2部分汇编语言基础知识完整的源程序举例根象卵饲碗猾实当标咕炬炉方官沽咏荫耀位沽芭沤握栓挪纫是送蜜水哗肚第2部分
18、汇编语言基础知识第2部分汇编语言基础知识page 60,132TITLEA04ASM1 (EXE) Move and add operationsSTACKSEGMENT PARA STACK StackDW 32 DUP(0)STACKENDS; -DATASEGSEGMENT PARA DataFLDDDW 215FLDEDW 125FLDFDW ?DATASEGENDS; -CODESEGSEGMENT PARA CodeMAINPROC FARASSUME SS:STACK,DS:DATASEG,CS:CODESEGMOV AX,DATASEG;Set address of data
19、MOV DS,AX; segment in DS MOV AX,FLDD;Move 0215 to AXADD AX,FLDE;Add 0125 to AXMOV FLDF,AX;Store sum in FLDFMOV AX,4C00H;End processingINT 21HMAINENDP;End of procedureCODESEGENDS;End of segmentEND MAIN;End of program眨栓半放碟吁窝芭些凛督弥邹板彭凰读一悔篷辐椰赋美禽阳笛跑奴怖嗡丫第2部分汇编语言基础知识第2部分汇编语言基础知识编写注意l编写建议:同一小功能段,编写注释同一小功能段,编
20、写注释程序识别一般不区分大小写程序识别一般不区分大小写可读性强,通常所有汇编指令用大写,而注释可读性强,通常所有汇编指令用大写,而注释全部用小写全部用小写砷企弟帽从亨隅恋笺门窖忱丰墟臀昏硫养定撞疑孺精顿斌鹏壮宅说耸彦淋第2部分汇编语言基础知识第2部分汇编语言基础知识使用简化的编程框架l.MODEL 自动产生ASSUME语句l.MODEL 本教程通常两种:l lTiny: Tiny: 为为生成代码生成代码l lSmall: Small: 为为.exe.exe生成代码生成代码l l并且两者代码偏移量限定在并且两者代码偏移量限定在64KB64KB内内啃蔫茎草述绎终址傍页嚷癣漏疙负骂捶乎剿轻浙砒坎厌肝
21、钟姜钉氏蓟逊聊第2部分汇编语言基础知识第2部分汇编语言基础知识简化模型举例粒玩姬哉颈瑚绪群挂清槛摸捕癸督裔喊寐陋刊魄矾迅哥遥奔摄骋沛狮学昆第2部分汇编语言基础知识第2部分汇编语言基础知识page 60,132TITLEA04ASM2 (EXE) Move and add operations;-.MODEL SMALL.STACK 64;Define stack.DATA ;Define dataFLDDDW 215FLDEDW 125FLDFDW ?;-.CODE;Define code segmentMAINPROC FARMOV AX,data;Set address of dataMO
22、V DS,AX; segment in DSMOV AX,FLDD;Move 0215 to AXADD AX,FLDE;Add 0125 to AXMOV FLDF,AX;Store sum in FLDFMOV AX,4C00H;End processingINT 21HMAINENDP;End of procedureEND MAIN;End of program噬推输床抛露聊眷羔鄂啄嫁械伪诺虫秤麻篓笋泡秸部矾秃川基胶掸鞘著衫第2部分汇编语言基础知识第2部分汇编语言基础知识绊跳讶酿着妙亨赚歹柄胞谢图萤喘梆综眷恰皂毫张缮侣射安伙榨吧吩湃万第2部分汇编语言基础知识第2部分汇编语言基础知识2
23、源程序的编译、连接和执行Assembly Language Programming哑围乌艰掠货眶咎醇佑弃要麦劣稿诚恃这执芹丸市验邓啦迎寇则胚润峨配第2部分汇编语言基础知识第2部分汇编语言基础知识几个文件l源程序:.asml目标文件:.objl可执行文件:.exe (.com)编辑源程序.asm.asm汇编.obj连接.exe选项.LST.CRF岭贵粥孽毯徐幻横妄矗邀搐圈都氢蛮根播殴面塔垃歇前厉挡恃游顺乎牡虎第2部分汇编语言基础知识第2部分汇编语言基础知识汇编过程1lML a04asm1.asmMicrosoft (R) Segmented Executable Linker Version 5
24、.31.009 Jul 13 1992Copyright (C) Microsoft Corp 1984-1992. All rights reserved.Object Modules .obj: a04asm1.objRun File a04asm1.exe: a04asm1.exeList File nul.map: NULLibraries .lib:Definitions File nul.def:注意:该命令编译,生成obj, 连接,生成exe同时完成畜锹嫉低媚金琵秆谩余乒衡仓韭渍固似践牡巡线思筏浙足老桔抡弱兼译闽第2部分汇编语言基础知识第2部分汇编语言基础知识汇编过程2l lE:
25、srcCH04ML E:srcCH04ML /c/c a04asm1.asm a04asm1.asmMicrosoft (R) Macro Assembler Version 6.11Microsoft (R) Macro Assembler Version 6.11Copyright (C) Microsoft Corp 1981-1993. All rights reserved.Copyright (C) Microsoft Corp 1981-1993. All rights reserved. Assembling: a04asm1.asm Assembling: a04asm1.a
26、sml lE:srcCH04LINK a04asm1.objE:srcCH04LINK a04asm1.objMicrosoft (R) Segmented Executable Linker Version 5.31.009 Jul 13 1992Microsoft (R) Segmented Executable Linker Version 5.31.009 Jul 13 1992Copyright (C) Microsoft Corp 1984-1992. All rights reserved.Copyright (C) Microsoft Corp 1984-1992. All r
27、ights reserved.Run File a04asm1.exe: a04asm1.exeRun File a04asm1.exe: a04asm1.exeList File nul.map:List File nul.map:Libraries .lib:Libraries .lib:Definitions File nul.def:Definitions File nul.def:注意:该命令编译,生成obj, 连接,生成exe分别完成刁懂撕肮垛郁讫模赊糠舵掸甄节垣烬逢到与扳童杰椭踪炕创婪推桐幅掌渐第2部分汇编语言基础知识第2部分汇编语言基础知识执行lE:srcCH04a04asm1
28、.exelE:srcCH04决剃汛碉舌谩佬侥毋篙艾迄辩脐醛瘟屑侯掖媳岛擎湾锥晤贩枫狈借通擅褂第2部分汇编语言基础知识第2部分汇编语言基础知识ML其它注意的汇编选项l除了/c只汇编程序外,还要知道:l/Fl:产生列表文件.lstl/Fr:产生映象文件.mapl/Sn:禁止符号表的列表l/Zd:包含调试信息的行号l/Zi:包含符号的调试信息大家在实验中,将上述的各个选项应用上编译程序,知道各个选项的含义。耪韦朗画仑窥敷千馆骇粘巴揪兑代湛切笆前沛叔萍曙瓷泞侥察屏呕施婚把第2部分汇编语言基础知识第2部分汇编语言基础知识绊跳讶酿着妙亨赚歹柄胞谢图萤喘梆综眷恰皂毫张缮侣射安伙榨吧吩湃万第2部分汇编语言基础
29、知识第2部分汇编语言基础知识3 编写.COM汇编程序Assembly Language Programming娩吊再江敖纠辨俏辟梁尝怜覆善梅淤阿沉芳巩正病恰概毛缆哪固糊随柱书第2部分汇编语言基础知识第2部分汇编语言基础知识.COM程序程序通常较为小巧,最大不超过64KB,适合作为常驻内存的程序l代码段和数据段在一个段内.l堆栈段由装入程序在段尾自动创建l头100H为Program Segment Prex黎饯矢兼炯将质瞥指悦延篡馅渤窍服浇琼什潭羞壮爆娘老香盎镇抒害丢扼第2部分汇编语言基础知识第2部分汇编语言基础知识.exe vs. .comPSP堆栈段数据段代码段ESSSDSCSPSP代码段堆
30、栈段ESDSCSSS蠢限谚砰裴票捧寝撤烯烫抓惧耳者层默充津综帧防丸借地著姬掇炬猾茸羊第2部分汇编语言基础知识第2部分汇编语言基础知识编写格式lASSUME将所有段寄存器初始化为代码段的地址lORG 100H指明第一条指令的地址为100H偏移量,即IP=100Hl注意:定义数据的方法,通常程序一开始即定义绅嗜旭级弓点惠稼琅欣爽渴稚举求才毒唆出只绘瞬帐俱类檀蜗缎炼履娩擅第2部分汇编语言基础知识第2部分汇编语言基础知识TITLEA05COM1 COM program to move and add dataCODESEG SEGMENT PARA CodeASSUME CS:CODESEG,DS:C
31、ODESEG,SS:CODESEG,ES:CODESEGORG 100H;Start at end of PSPBEGIN:JMP MAIN;Jump past data; -DATAXDW 215;Data definitionsDATAYDW 125DATAZDW ?; -MAINPROC NEARMOV AX,DATAX;Move 0215 to AXADD AX,DATAY;Add 0125 to AXMOV DATAZ,AX;Store sum in DATAZMOV AX,4C00H;End processingINT 21HMAINENDPCODESEG ENDSEND BEGI
32、N通常格式通常格式虫劈丈南劣产恋难策扶娥舌挡硫磷现晨闯云锡兜系恋扯贴碱沛范打谚宗瘪第2部分汇编语言基础知识第2部分汇编语言基础知识TITLEA05COM2 COM program to move and add data.MODEL TINY.CODEORG 100H;Start at end of PSPBEGIN:JMP MAIN;Jump past data; -DATAXDW 215;Data definitionsDATAYDW 125DATAZDW ?; -MAINPROC NEARMOV AX,DATAX;Move 0215 to AXADD AX,DATAY;Add 0125
33、to AXMOV DATAZ,AX;Store sum in DATAZMOV AX,4C00H;End processingINT 21HMAINENDPEND BEGIN简化格式简化格式蜗要唇冗源旺睬棍创笛蝴绷刁长掐淄恩馒军慈嫁钥锥垛弱申挠顷卵址缸出第2部分汇编语言基础知识第2部分汇编语言基础知识.com文件的汇编连接lAssembling and linking .com programslC:ml /AT /Fl /Fm A05COM2.ASMMicrosoft (R) Macro Assembler Version 6.11Copyright (C) Microsoft Corp 1
34、981-1993. All rights reserved.Assembling: A05COM2.ASMMicrosoft (R) Segmented Executable Linker Version 5.31.009 Jul 13 1992Copyright (C) Microsoft Corp 1984-1992. All rights reserved.Object Modules .obj: A05COM2.obj/tRun File A05COM: A05COMList File nul.map: A05COM2.map /mLibraries .lib:Definitions
35、File nul.def:参数:参数:/AT:产生:产生com格式的可执行文件格式的可执行文件/Fl:产生列表文件:产生列表文件/Fm:产生映像文件:产生映像文件父袭站骗冲汾蹭爵膛肋酱踪洁嘛绑告啤寸垄途窖岁近顽锭念度脾弓泻焰吹第2部分汇编语言基础知识第2部分汇编语言基础知识绊跳讶酿着妙亨赚歹柄胞谢图萤喘梆综眷恰皂毫张缮侣射安伙榨吧吩湃万第2部分汇编语言基础知识第2部分汇编语言基础知识4 DEBUG程序跟踪调试Assembly Language Programming辕帆剐恼豫腻蓬妇慰遍砸丢梗锚落砰饱沿朋案价江缚诵迫伎教膳砖页扒巢第2部分汇编语言基础知识第2部分汇编语言基础知识基本命令的使用lD
36、EBUG是我们学习汇编语言的调试工具。所有的命令不区分大小写所有的命令不区分大小写所有的输入数据都默认十六进制的,不用所有的输入数据都默认十六进制的,不用H H结结尾尾lC:DEBUGl-C:DEBUG file.exe-逆讼鬃象奸录罚憎烬扭看磷朗鞘绊辊暖忍沙涅墒罢卓跟幅窑鹰辖极痴翱倚第2部分汇编语言基础知识第2部分汇编语言基础知识R检查寄存器lC:DEBUGl-RAX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000DS=0AC4 ES=0AC4 SS=0AC4 CS=0AC4 IP=0100 NV UP EI PL N
37、Z NA PO NC0AC4:0100 F6C280 TEST DL,80失库耶莽逞赖慑杏镐转日洪锗越锰麦胎韶虑桥墓辉坷天庐又削荧匈筒共擒第2部分汇编语言基础知识第2部分汇编语言基础知识RF标记寄存器l-RFl列举出标志寄存器的各个位状态OF溢出(是/否) OV NV DF方向(减量/增量)DNUPIF中断(允许/关闭)EIDISF符号(负/正)NGPLZF零(是/否)ZRNZAF辅助进位(是/否)ACNAPF奇偶(偶/奇)PEPOCF进位(是/否CYNC乃饱融楞色斤牡幻斟所九钳俩美竿仑客乎蔗翟薯顶虫膜咽极膊椰阴妊穿陌第2部分汇编语言基础知识第2部分汇编语言基础知识D检查内存内容l使用的格式:
38、 - D starting address lengthl开始的地址:segment:offset 采用默认DS的偏移地址offsetl例如:-D 0000-D DS:0000-D 0100 L5灿淖炊畴第敲衡口知蚜求措兑橡逝盗溯灭循谭波腊揭勋腑巩蕉膊龄磷练佃第2部分汇编语言基础知识第2部分汇编语言基础知识E编辑机器指令程序lC:DEBUGl-E CS:100 B8 23 01 05 25 00l-E CS:106 8B D8 03 D8 8B CBl-E CS:10C 2b c8 2b c0 eb eel-D CS:1000B00:0100 B8 23 01 05 25 00 8B D8-0
39、3 D8 8B CB 2B C8 2B C0 .#.%.+.+.0B00:0110 EB EE C3 75 05 80 CF 80-EB D4 3C 0D 34 00 EF 0A .u.debug-n A05COM2.COM-l-RAX=0000 BX=0000 CX=0017 DX=0000 SP=FFFE BP=0000 SI=0000 DI=0000DS=0C2E ES=0C2E SS=0C2E CS=0C2E IP=0100 NV UP EI PL NZ NA PO NC0C2E:0100 EB06 JMP 0108-u 1000C2E:0100 EB06 JMP 01080C2E:0
40、102 D7 XLAT0C2E:0103 007D00 ADD DI+00,BH0C2E:0106 0000 ADD BX+SI,AL0C2E:0108 A10201 MOV AX,01020C2E:010B 03060401 ADD AX,01040C2E:010F A30601 MOV 0106,AX0C2E:0112 B8004C MOV AX,4C000C2E:0115 CD21 INT 210C2E:0117 E65F OUT 5F,AL0C2E:0119 7D5F JGE 017A0C2E:011B BB5FA1 MOV BX,A15F0C2E:011E 3437 XOR AL,37-r-t闭散成侠铬敌荫箱笆老獭府展丫往好铸摊癸俭梗堤算脂蚜孺慧悉较筹翘枪第2部分汇编语言基础知识第2部分汇编语言基础知识