- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章 变量 汇编语言程序设计 教学课件
5.4.8 字节型符号扩展 【指令格式】CBW 【功能】对AL中的带符号数进行符号扩展,当AL0时,AH被赋值为0FFH,否则AH被置为0。该指令不影响所有标志位。 CBW指令用来把一个8位的带符号数转换成与其等值的16位带符号数,要求原数据放在AL中,而转换结果放在AX中,并且AX中的低8位部分(即AL)不变。这条指令的功能可以用下面的程序段实现: CMP AL,0 JL lab1 MOV AH,0 JMP lab2 lab1:MOV AH,0FFH lab2: … CBW指令一般与IDIV指令配合使用。当程序中需要把一个字节型带符号数去除以另一个字节型带符号数时,按IDIV指令的要求,必须把字型的被除数放在AX中。为此就需要用CBW指令把放在AL中的字节型被除数进行符号扩展,变成字型,然后才能用IDIV指令进行除法操作。 5.4.9 字型符号扩展 【指令格式】CWD 【功能】对AX中的带符号数进行符号扩展,当AX0时,DX被赋值为0FFFFH,否则DX被置为0。该指令不影响所有标志位。 CWD指令用于把字型带符号数转换成双字型带符号数,结果放在DX和AX中。类似地也可以用一段程序实现该指令的功能。CWD指令一般与IDIV指令配合用于被除数与除数都是字型带符号数的除法。 5.4.10 交换指令 【指令格式】XCHG ?d1, d2 【功能】把操作数d1与d2的值交换。该指令不影响所有标志位。 【说明】交换指令XCHG要求两个操作数中不能有立即寻址方式,不能有段寄存器,也不允许两个都是内存型寻址方式。 如果没有XCHG指令,交换两个数据需要3到4条指令。比如,XCHG AX, BX 就是下面3条指令构成的程序段的简化: MOV CX,AX MOV AX,BX MOV BX,CX 如果要交换两个字节型变量x和y中的内容,应用交换指令可以写成: MOV AL,[x] XCHG AL,[y] MOV [x],AL *5.4.11 查表转换 【指令格式】XLAT 【功能】这是一条隐含操作数指令,把字型寄存器BX的值与字节型的AL相加,结果作为内存的偏移地址,以DS为段,到内存中取出一字节送到AL中。该指令不影响所有标志位。 XLAT指令的功能概括地说就是“查表转换”。在内存中预先存放一张表,每个表项由一个字节构成,最多不超过256字节。把表的起始偏移地址放在BX中,要想取出表的第n项,可以先把n放到AL中,然后用XLAT指令取出指定表项放在AL中。 【例5.13】“代换”是密码中常用的一种方法,即用一个符号代替另一个符号,使不知道这种代换关系的人无法看懂代换后的符号串。表5.1是一张代换表。试编写程序,从键盘读入一串数字,显示转换后的结果。 表5.1 用符号代替数字的代换关系表 原符号 0 1 2 3 4 5 6 7 8 9 代替符号 = / | \ @ % # ^ - 【分析】输入串必须全部由数字构成,表可以用变量的方式定义,并且把首地址放到BX中。依次取出每一个输入符号的ASCII值,减去30H后变成数值放在AL中,然后用XLAT指令查表转换,结果可以暂时存放起来。全部转换完后用DOS的9号子功能输出到屏幕上。 【解】 data SEGMENT table DB =/|\@%#^- ;转换表 bufin DB 80,81 DUP(0) ;输入缓冲区 disp DB 13,10 ;用于输出的回车换行符 bufout DB 80 DUP(0) ;用于存放转换结果 data ENDS code SEGMENT ASSUME CS:code,DS:data start: MOV AX,data MOV DS,AX LEA
有哪些信誉好的足球投注网站
文档评论(0)