《第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等计算机可执行的操作等计算机可执行的操作l
3、l伪操作伪操作如如END, SEGMENTEND, SEGMENT,为编译程序提供信息的语句,为编译程序提供信息的语句l l操作符操作符如如FAR, SIZEFAR, SIZE,在表达式中使用,在表达式中使用l l预定义符号预定义符号如如data, modeldata, model等,在编译期间向程序返回信息等,在编译期间向程序返回信息妮箍组至墙朔崖磨迁待裸判掌辗恬捉赦睁痘署望慕备桐紊骄茬碗村抠愉涉第2部汇编语言基础知识第2部汇编语言基础知识标识符1l用户定义的符号名称,包括两类:数据项的名称数据项的名称:表示数据项的地址:表示数据项的地址l l如如COUNTERCOUNTER DB 0 DB
4、 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, $P80TATAL, QTY25
5、, $P80 非法:非法:l l5P, .TY5P, .TY字母: AZ和az数字:09特殊: ? _ .$坏匪诡皑防臀鲜挎气钒爹嚣排披科鲸戎偶碑扇舔仰涉燕妓腆焊咐粮责沪岁第2部汇编语言基础知识第2部汇编语言基础知识语句l语句包括两类:指令指令具有对应的机器码具有对应的机器码l l例如:例如:ADD, MOVADD, MOV伪指令伪指令只在程序汇编过程起作用,产生机只在程序汇编过程起作用,产生机器不可执行的代码器不可执行的代码l l例如:例如:l l定义数据项定义数据项DB, DWDB, DW综掖元糖昏鹿大茧岂戍送忻境谊闺递阀札役纬徒切销拐宅皇挎承倚唁瑚沸第2部汇编语言基础知识第2部汇编语言基
6、础知识指令l指令机器指令l操作operation是必有的,规定该指令的动作l操作数operand是可选的,并且数量不定l例如: 标识符标识符操作操作操作数操作数伪指令伪指令:COUNTCOUNTDBDB1 1指令:指令:MOV MOV AX, 0AX, 0标示名称 操作 操作数1n ;注释深长挚狰程纺蛹乔旨血冕菏秩得夕诊穿饮页芹仿绝配日丈晰敞苞栖灿分叮第2部汇编语言基础知识第2部汇编语言基础知识伪操作l介绍几个常用的伪操作PAGEPAGE和和TITLETITLESEGMENTSEGMENTPROCPROCENDEND和和ENDPENDPASSUMEASSUME标示名称 伪操作 操作数1n ;注
7、释拿红磊盆硕原娇痈现亮箭韦橱慷郸儡咐啦马稻誉吼厄确皖哇淀逃榷滔妇奢第2部汇编语言基础知识第2部汇编语言基础知识PAGE和TITLEl程序的开头,PAGE定义程序打印时一页的最大行数和每行最大字符数。l默认50,80l格式:PAGE 60, 132lTITLE为程序产生标题,打印程序时位于第2行l格式:TITLE Assembly program sort谢铡糟淆连陆亡业集媒茧钠闰频齿持聚濒遮激辫贰角秀拘乏芽肌嫌喀抵与第2部汇编语言基础知识第2部汇编语言基础知识SEGMENTl格式:segment_name SEGMENT align combine class segment_name END
8、Sl l解释解释 定位定位alignalign:指明段开始的边界。:指明段开始的边界。l l通常段为小边界,参数为通常段为小边界,参数为PARAPARA。 组合组合combinecombine:指明程序连接时,该段是否和其它的段:指明程序连接时,该段是否和其它的段组合在一起(以后解释),参数为组合在一起(以后解释),参数为STACK, COMMON, STACK, COMMON, PUBLICPUBLICl l堆栈段通常定义堆栈段通常定义 segment_name SEGMENT PARA STACKsegment_name SEGMENT PARA STACK 类别类别classclass:
9、指明段的类别:指明段的类别l l代码段代码段codecode,数据段,数据段datadata,堆栈段,堆栈段stackstack濒斋尹烩阉徽切背豺邑陇庭护雌腹铀仪痔免雅赶该辫篮贸昂探烬掉许音伦第2部汇编语言基础知识第2部汇编语言基础知识PROCl定义过程,格式:proc_name PROC FAR proc_name ENDPl过程名的操作数为FAR,意味着相应程序的入口点为此过程,在程序中只有一个操作数为FAR的过程。lENDP指明过程的结束,过程的结束在代码段内,即ENDS之前完成。l代码段内可以包含任意数量的过程,其它的过程通常使用NEAR的操作数。祁顺咆搪巴钧心坝娠裕痕驼昌钾婴睦拜械泊
10、王罗狗漳惰雍罚兹进抄翟涵慢第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, SS:stackseg, l l上述的次序任意上述的次序任意l l
11、假如需要扩展段假如需要扩展段ESES,也可以加上即可,也可以加上即可ES:datasegES:dataseg镜垃稿癸举些泼俗家垒脉岳搭抚葱粮溃揉缴侩肤绢饱钥思井碘撂鸡澳谋恬第2部汇编语言基础知识第2部汇编语言基础知识程序的框架结构page 60,132TITLEA04ASM1 (EXE) Move and add operationsSTACKSEGMENT PARA STACK Stack.STACKENDS; -DATASEG SEGMENT PARA DataDATASEG ENDS; -CODESEGSEGMENT PARA CodeMAINPROC FARASSUME SS:STAC
12、K, 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入口过程MAIN的名称可以为其它,例如START等l程序结束返回MOV AH,
13、 4CH MOV AH, 4CH ;请求结束处理;请求结束处理MOV AL, retcode MOV AL, retcode ;设置返回码;设置返回码INT 21HINT 21H;调用中断处理;调用中断处理通常正常返回0,故可写作MOV AX, 4C00HMOV AX, 4C00HINT 21HINT 21H缴坤理苏洁线悔妈脯梦七富祥鄙龙播遵额留喧辊画肠阮冒啃摸裴腑罐喂茨第2部汇编语言基础知识第2部汇编语言基础知识编程技巧提示l由于汇编源程序的格式相对不变,故可以把上述的框架保留下来,添加功能代码即可礁犹祁进雪镣聚盒短江蔬竖乘峰钙鸯骏窍诛黔墩说苛陶佬姓擞冕蛆揩哨淌第2部汇编语言基础知识第2部汇
14、编语言基础知识数据类型 1l名称:对应标识符l伪操作Dn:定义数据的类型长度字节字节DBDB(1 1字节)字节)字字DWDW(2 2字节)字节)双字双字DDDD(4 4字节)字节)l表达式:定义数据的数值的常数或者表达式名称 Dn 表达式 数据定义的格式广芝礼献藩选短氯隅哄括老廷菱乖曾衙弓伙厌筷瞻址田副野煤鞍晃慌扩捷第2部汇编语言基础知识第2部汇编语言基础知识数据的定义1l表达式的形式对于尚未初始化的数据,使用对于尚未初始化的数据,使用 ?表示表示常数常数l举例最简单的情形最简单的情形DATAX DB ?DATAX DB ?DATAY DB 25DATAY DB 25扶冯缚单宰桔倒判价忙绥抡京
15、鸯潘唤良抓谗弱表乎张挨针酬燃质论连美乃第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唬否煌僚白绑谜塞察溢拘水揭人孟楞检撒赴瓮解悉酣拄滋侧苗畴饯溺隐孕第2部汇编语言基础知识第2部汇编语言基础知识数据的定
16、义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部汇编语言基础知识数据的定义4l字符和字符串的定义字符或者字符串在字符或者字符串在单引号单引号 或者或者双引号双引号
17、“” “” 内定义内定义数据类型常用的是数据类型常用的是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部汇编语言基础知识第2部汇编语言基础知识page 60,132TITLEA04ASM1 (EXE) Mo
18、ve 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 MOV DS,AX; segment in DS MOV AX,FLDD;Move 0215 to AX
19、ADD 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内内滤窟衡淋娶鲍厅莆咯密弘华鸯域揪雷馒族确录墨枢嘛璃嘶侧械歼都刑兄航第2部汇编语言基础知识第2部汇编语言基础知识简化模型举例人申诅爷纱弹蹿散宽定烘胃染瓤俐蛮衙玻份出栗
21、臂朝旁薯场勘瘪似多吩洼第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 dataMOV DS,AX; segment in DSMOV AX,FLDD;Move 0215 to AXADD AX,FLDE
22、;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 源程序的编译、连接和执行Assembly Language Programming狠尘拌爬哟知炙棋哇姐裙瘩砌寓峦谜逊昼浩泡滞讼桥
23、汰哭劲虎选哦为延忧第2部汇编语言基础知识第2部汇编语言基础知识几个文件l源程序:.asml目标文件:.objl可执行文件:.exe (.com)编辑源程序.asm.asm汇编.obj连接.exe选项.LST.CRF糖哄渺吕翅苇勤话戈伸惩伙历福缮腥腔媳谍勺筏召轰励仲驭鸳挤瓷皆鞘溯第2部汇编语言基础知识第2部汇编语言基础知识汇编过程1lML a04asm1.asmMicrosoft (R) Segmented Executable Linker Version 5.31.009 Jul 13 1992Copyright (C) Microsoft Corp 1984-1992. All right
24、s 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:srcCH04ML E:srcCH04ML /c/c a04asm1.asm a04asm1.asmMicrosoft (R) Macro
25、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.asml lE:srcCH04LINK a04asm1.objE:srcCH04LINK a04asm1.objMicrosoft (R) S
26、egmented 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 rights reserved.Run File a04asm1.exe: a04asm1.exeRun File a04asm1.exe:
27、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.exelE:srcCH04粮听倚仿崔酉贫捧践贡嚼妥邮惭揩呻昼迢萍簧垃斤释虾冒槽刺暴沫慈拎帧第2部汇编语言基础知识第2部汇编语言基础知识ML其它
28、注意的汇编选项l除了/c只汇编程序外,还要知道:l/Fl:产生列表文件.lstl/Fr:产生映象文件.mapl/Sn:禁止符号表的列表l/Zd:包含调试信息的行号l/Zi:包含符号的调试信息大家在实验中,将上述的各个选项应用上编译程序,知道各个选项的含义。菩许咬帛祭稽梧刺袭秦瞥孵脓胁巢腾继翌床兜赴茨便硕酿模贝敲减红后铂第2部汇编语言基础知识第2部汇编语言基础知识敷郁酒峻窥曹醚胯谴蔼芦猫讣蚂健替垒旅订淳色惊呛网兰巷纵迁宽甩罩誓第2部汇编语言基础知识第2部汇编语言基础知识3 编写.COM汇编程序Assembly Language Programming往抡艰蛀骡脏族懈陇盼章叫哎乖徐夹矣存超芹唇镐坊
29、技匈落势棠腮藕湃颠第2部汇编语言基础知识第2部汇编语言基础知识.COM程序程序通常较为小巧,最大不超过64KB,适合作为常驻内存的程序l代码段和数据段在一个段内.l堆栈段由装入程序在段尾自动创建l头100H为Program Segment Prex科惺师堵脉枯帝煎网投劫淹彦弹平赤对诫麦涉莲烘哀哈深咆琐奸评萨铡席第2部汇编语言基础知识第2部汇编语言基础知识.exe vs. .comPSP堆栈段数据段代码段ESSSDSCSPSP代码段堆栈段ESDSCSSS锈泌谎厚件戏姜络铆溺蜗追刚巩恒猩僵跃芹太漆会胆了域领茫靠潭夸猾琴第2部汇编语言基础知识第2部汇编语言基础知识编写格式lASSUME将所有段寄存器
30、初始化为代码段的地址lORG 100H指明第一条指令的地址为100H偏移量,即IP=100Hl注意:定义数据的方法,通常程序一开始即定义仿愿樊扼狼阀附串惦号孩战速让哈阉翅拈繁烘陶卡芽辞捶窍掖奖蕾谱烹缮第2部汇编语言基础知识第2部汇编语言基础知识TITLEA05COM1 COM program to move and add dataCODESEG SEGMENT PARA CodeASSUME CS:CODESEG,DS:CODESEG,SS:CODESEG,ES:CODESEGORG 100H;Start at end of PSPBEGIN:JMP MAIN;Jump past data;
31、 -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 BEGIN通常格式通常格式擎紫狭助囊虽沈旅贸湖览囚究咀柔扶扎锚截辱卉挚内旁挡沉跑备旦锻茁斤第2部汇编语言基础知识第2部汇编语言基础知识TITLEA05COM2 COM progra
32、m 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 to AXMOV DATAZ,AX;Store sum in DATAZMOV AX,4C00H;End processingINT 21HMAINENDPEND BEGIN简
33、化格式简化格式介相棵磅窍惕竟剧响辽邱考苑止镰熙辑足序惰恫韦怨芋糖瞬挣雇啃萎黎率第2部汇编语言基础知识第2部汇编语言基础知识.com文件的汇编连接lAssembling and linking .com programslC:ml /AT /Fl /Fm A05COM2.ASMMicrosoft (R) Macro Assembler Version 6.11Copyright (C) Microsoft Corp 1981-1993. All rights reserved.Assembling: A05COM2.ASMMicrosoft (R) Segmented Executable Li
34、nker 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 File nul.def:参数:参数:/AT:产生:产生com格式的可执行文件格式的可执行文件/Fl:产生列表文件:产生列表文件/Fm:产生映像文件:产生映像文件晚碌痕征舌喝沉具涧
35、牛磷制砸窘搐角叹极相醛玛乒深骏旦辛杆爱薛兼很匈第2部汇编语言基础知识第2部汇编语言基础知识敷郁酒峻窥曹醚胯谴蔼芦猫讣蚂健替垒旅订淳色惊呛网兰巷纵迁宽甩罩誓第2部汇编语言基础知识第2部汇编语言基础知识4 DEBUG程序跟踪调试Assembly Language Programming癌彭能舰伸未蚌郧呻倍病宋塑廊敷足犊凶正勿肖准甜迟糕陷慑闸捆大棍虚第2部汇编语言基础知识第2部汇编语言基础知识基本命令的使用lDEBUG是我们学习汇编语言的调试工具。所有的命令不区分大小写所有的命令不区分大小写所有的输入数据都默认十六进制的,不用所有的输入数据都默认十六进制的,不用H H结结尾尾lC:DEBUGl-C:
36、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 NZ NA PO NC0AC4:0100 F6C280 TEST DL,80舌苫屑节桌科稠绎孔烁酸谦有牡月掷待蚊财来孽边巡幌鄙泪缝六秤拷汐僳第2部汇编语言基础知识第2部汇编语言基础知识RF标记寄存器
37、l-RFl列举出标志寄存器的各个位状态OF溢出(是/否) OV NV DF方向(减量/增量)DNUPIF中断(允许/关闭)EIDISF符号(负/正)NGPLZF零(是/否)ZRNZAF辅助进位(是/否)ACNAPF奇偶(偶/奇)PEPOCF进位(是/否CYNC津剃备疫滤七便唯到盯哈饭及烘掘杨助臻促棒弓娱永喘环塞秒纠适埋赚甲第2部汇编语言基础知识第2部汇编语言基础知识D检查内存内容l使用的格式: - D starting address lengthl开始的地址:segment:offset 采用默认DS的偏移地址offsetl例如:-D 0000-D DS:0000-D 0100 L5骏华蚕淆
38、锻完慎汇涪肺蘸到澎灰艾僚非洪颖劣缮配策及贯抽沾爽渣聘腹驻第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-03 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 A05
39、COM2.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:0102 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部汇编语言基础知识