- 1、本文档共107页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
微机原理与接口课件第六次课
(2) SAHF 功能:把AH的内容送入标志寄存器的低8位。 (3) PUSHF 功能:把16位的标志寄存器压入堆栈保存,同时SP–2?SP。 (4) POPF 功能:将当前SP所指内容(2字节)弹出至标志寄存器,同时SP+2?SP。 4. I/O数据传送指令 功能:从指定端口输入数据至累加器acc (AL或AX) ,port=0~255 (1) IN acc, port AH AL acc 端口port 16位数据时 (2) IN acc, DX 功能:从DX指示的端口输入数据至累加器acc , DX=0~65535 (3) OUT port, acc 功能:将累加器的数据输出至指定端口。 (4) OUT DX,acc 功能:将累加器的数据输出到DX所指示的端口。 注:① 16位端口地址必须送入DX中。 ② 若采用AX,则表示16位数据传送(输入/输出) (4) 换码指令XLAT 功能:该指令通过AL和BX寄存器进行表格查找,将8位数装入AL中。它完成的操作为:AL← [BX+AL],XLAT指令常用于查表操作,即BX寄存器含有表格的起始地址,而AL中的值是作进入表格中的偏移量,查出表格中的内容送入AL中。 例 设DS =3000H, AL=09H, BX=0080H 执行指令XLAT作用是:将存储单元30089H的内容送入AL中。 二、算术运算指令 算术运算指令的操作数可以是无符号数,也可以是有符号数。 算术运算指令一般影响标志位,而数据传送指令一般不影响标志位。 1. 加法指令 (1) ADD d, s 功能:将s与d相加,结果在d中。根据操作结果设置标志位。 例:ADD [BX+106BH],1234H 设DS=2000H,BX=1200H,EA=1200H+106BH=226BH 物理地址:2000H?16+226BH=2226BH 又设原来(2226BH)=90H,(2226CH)=30H 则指令执行后:3090H+1234H=42C4H 即(2226BH)=C4H,(2226CH)=42H 又? 42C4H=0100,0010,1100,0100B ? 标志位:CF=0,ZF=0,SF=0 AF=0,PF=0 (3个1),OF=0 (2) ADC d, s 功能:将s与d再与进位CF相加,结果留在d中,ADC指令主要用于多字节相加。 例:MOV AX,0FH ;AX=000FH ADD AL,0F1H ;AL+F1H?AL ADC AH,0 ;AH+0+CF?AH 最后结果:AH=01H,AL=00H 注:若是立即数,且最高位为数码A~F,则必须在前面添加一个0,以避免混淆。 (3) INC d 功能:将d加1后送回d。 注:INC指令不影响进位标志CF。 该指令经常用于修改地址指针寄存器 (BX, BP, SI, DI),使之指向下一个单元。 1. 检查指令中所引用的变量和标号是否合理,即它们的段属性是否和某个段寄存器的段假设值相符。 2. 检查是否需要为所引用的变量和标号产生跨段前缀字节,即检查变量和标号的段属性是否与硬件为该指令所规定的段寄存器的假设值相符。 3 目标程序的连接 C:\ASMTLINK HEXTOASC (回车) 连接成功后,将生成可执行程序HEXTOASC.EXE。 4 程序的调试与运行 1.调试可执行程序 利用Turbo Debuger(TD)对可执行程序进行调试,以检查程序可能存在的各种错误: C:\ASMTD HEXTOASC.EXE (回车) 2.运行可执行程序 C:\ASMHEXTOASC (回车) 汇编语言的语句格式(Statement Formats) 汇编语言程序的每行语句由1~4个部分组成。指令语句和伪指令语句在格式上稍有区别,指令语句的标号后有冒号“:”,而伪指令语句的标号后则没有冒号。 指令语句的格式为 [LABEL:] OPERATION [OPERAND] [;COMMENT] 标号域 指令助记符域 操作数域 注释域 伪指令语句的格式为 [LABEL] OPERATION [OPERAND] [;COMMENT] 标号域 伪指令助记符域 操作数域 注释域 ? 一行最多可有132个字符 注: ? 指令助记符前面还可以有[ 前缀 ]。 ? 汇编语言程序语句中的四项,均可以用大写、小写或混合编写。 ? 语句的各部分之间至少用一个空格分开 汇编语言源程序的组成
文档评论(0)