- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
总评成绩构成;第1章 基础知识;第2章 8086CPU中寄存器的结构及使用;第3章 存储器的分段;第4章 数据和指令的寻址方式;需要注意的问题;2. 段内间接寻址(Intrasegment indirect addressing);第5章 80X86的指令系统;算术指令;逻辑指令;条件转移指令;无符号、带符号的转移指令 ;第6章 伪指令及汇编语言程序结构;第7--11章 程序设计及相关;程序设计需要注意的问题;【例】: 分析下列指令执行后,各寄存器的值:
MOV AX,200H
MOV BX,300H
MOV CX,950H
PUSH AX
PUSH BX
PUSH CX
…… ;其间用到AX、BX、CX
POP CX
POP BX
POP AX
;【例】 若需 将0~F的十六进制数转换为ASCII码,在数据段中制表,设DS=3000H, 表格首地址为2000H存入BX中,要取出十六进制数B的ASCII码的程序段为:
MOV BX,2000H
MOV AL,0BH
XLAT
指令???行前:AL=0BH,BX=2000H, DS=3000H。则表格首单元物理地址=30000H+2000H=32000H,如图所示。
指令执行后:AL=42H, BX=2000H, 完成了代码的转换。 ;【例】: LEA BX,[BX][SI]
指令执行前: (BX)=0400H,(SI)=10F7H
则指令执行后:(BX)=0400H+10F7H=14F7H
【例】: LEA DI,ARRAY
若ARRAY的偏移地址为2000H,则指令执行后,
(DI)=2000H
与该指令等价的指令是: MOV DI,OFFSET ARRAY
注意:在这里得到的是偏移地址而不是该存储单元的内容。
指令“LEA SI,[BX]”与“MOV SI,[BX]”的区别是:
前者是将BX寄存器的内容作为存储单元的有效地址直接送入SI,若BX=2346H,则LEA SI,[BX] 执行后,SI=2346H;
而后者是将BX寄存器间接寻址的一个字内容送入SI中,若BX=2346H,DS=3000H, (32346H)=45H,(32347H)=43H,指令MOV SI,[BX]执行后的SI=4345H。;【例】 LDS SI,ADDR[BX]
若BX=3000H, DS=3000H, ADDR=1500H,则:
操作数的有效地址EA
=BX+ADDR=4500H,
物理地址=34500H。
指令执行前:SI=1234H, (34500H)=00H, (34501H)=20H, (34502H)=00H, (34503H)=60H。
指令执行后:
SI=2000H, DS=6000H。
可以看到,该指令的使用,改变了DS内容,即实现了数据段的切换。 ; 【例】: 分析下列程序段执行后,AX的结果及标志位。 ;TEST的应用:该指令主要是用来测试目的操作数中,对应位是否为“1”,测试时,对应位置为1,无关位设置为0。;【例】: 若要把AX中的高位字节置为0,低位字节内容保持不变,AX=789AH,处理完后,AX=9AH 。 ;【例】:已知(EAX),编写一程序段,执行完,令(EAX)。 ;【例】:分析下列程序段执行后,AX的值:
XOR AX,AX
MOV AX,0A2D5H
MOV CL,3
RCL AX,CL
ADC AX,1234H ;【例】: 判断AX当前值的正负(设AX≠0),若为正数,则置CX为50,否则令CX为200。;【例】: 已知X为16位的数,判断X是奇数还是偶数,若为奇数,则令Z=X,若为偶数,令Z=0。;【例】 X、Y为两个带符号双精度数,已分别存放于DX、AX及BX、CX中。要求编制一个程序使X﹥Y时,转向L1执行,X=Y时转向L2执行,X﹤Y时转L3执行。
主要程序段如下:
CMP DX,BX ;先比较高16位为带符号数
文档评论(0)