输入指令IN、out

输入指令IN、out

ID:39583771

大小:106.50 KB

页数:29页

时间:2019-07-06

输入指令IN、out_第1页
输入指令IN、out_第2页
输入指令IN、out_第3页
输入指令IN、out_第4页
输入指令IN、out_第5页
资源描述:

《输入指令IN、out》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、输入指令ININAL,i8;字节输入:AL←I/O端口i8INAX,i8;字输入:AL←I/O端口i8,AH←I/O端口i8+1INAL,DX;字节输入:AL←I/O端口[DX]INAX,DX;字输入:AL←I/O端口[DX],AH←I/O端口[DX+1]8086用于寻址外设端口有216=65536个(64K),端口号为0000H~FFFFH。每个端口用于传送外设的一个字节数据。寻址前256个端口时,输入/输出指令可以用直接寻址,操作数i8即为端口号,其范围为00H~FFH。接寻址,其范围为0000H~FFFFH。输入/输出指令还分成用AL进行的字节传送和用AX进行的字传送。实现字传送

2、时,AL与i8或[DX]端口交换,AH与i8+1或[DX+1]端口交换。例2.15a:用字节输入指令从20h和21h端口输入一个字数据inal,21hmovah,alinal,20h2.15b:用字输入指令从20h和21h端口输入一个字数据inax,20h例2.15c:用DX间接寻址从20h和21h端口输入一个字数据movdx,20hinax,dxIN指令对应Debug的I指令(DEBUG的其他命令)INAL,60H;从端口60H读入一个字节到AL中INAX,20H;把端口20H、21H按“高高低低”组成的字读入AXMOVDX,2F8HINAL,DX;从端口2F8H读入一个字节到AL中

3、INAX,DX;把端口2F8H、2F9H按“高高低低”组成的字读入AXOUT61H,AL;把AL的内容输出到端口61H中OUT20H,AX;把AX的内容输出到端口20H、21H中MOVDX,3C0HOUTDX,AL;把AL的内容输出到端口3C0H中OUTDX,AX;把AX的内容输出到端口3C0H、3C1H中输出指令OUTOUTi8,AL;字节输出:I/O端口I8←ALOUTi8,AX;字输出:I/O端口I8←AL,I/O端口i8+1←AHOUTDX,AL;字节输出:I/O端口[DX]←ALOUTDX,AX;字输出:I/O端口[DX]←AL,I/O端口[DX+1]←AH输出指令OUT将C

4、PU数据传送至外设。8086用于寻址外设端口有216=65536个(64K),端口号为0000H~FFFFH。每个端口用于传送外设的一个字节数据。寻址前256个端口时,输入/输出指令可以用直接寻址,操作数i8即为端口号,其范围为00H~FFH。当寻址大于256的外设端口时,只能使用DX寄存器间接寻址,其范围为0000H~FFFFH。输入/输出指令还分成用AL进行的字节传送和用AX进行的字传送。实现字传送时,AL与i8或[DX]端口交换,AH与i8+1或[DX+1]端口交换。例2.16:将数据80h送到3fch端口movdx,3fchmoval,80houtdx,alOUT指令对应Deb

5、ug的O指令(链接DEBUG的其他命令)各标志位含义:1、CF(进位标志)=1算术操作最高位产生了进位或借位=0最高位无进位或借位(比如cmpah,al。及进行ah-al操作,不过不保存结果,只影响标志位。jnc和jc即根据cf标志位的结果进行跳转。至于如何影响:如果减数大于被减数,此时有借位。则将cf位置1,否则置0.)2、PF(奇偶标志)=1数据最低8位中1的个数为偶数=0数据最低8位中1的个数为奇数3、AF(辅助进位标志)=1D3→D4位产生了进位或借位=0D3→D4位无进位或借位4、ZF(零标志)=1操作结果为0=0结果不为05、SF(符号标志)=1结果最高位为1(即结果为负数

6、)=0结果最高位为0(结果为正数)6、OF(溢出标志)=1此次运算发生了溢出=0无溢出例如8位二进制数相加:10011100B+00011000B结果为10110100B此时无进位CF=0,PF=1,AF=1,ZF=0,SF=1,OF=0。7、已知有几个元素存放在以BUF为首地址的字节存储区中,试统计其中正元素个数(汇编语言datasegment;数据段定义bufdb3,6,-3,9,-6,-8,5;定义数据numdw$-buf;存放数据个数cntdb?;存放正数个数dataendscodesegment;代码段定义assumecs:code,ds:datastart:movax,da

7、tamovds,axmovcx,nummovbx,offsetbufxordl,dlnext:moval,[bx];取得数值andal,al;影响标志位jslop;如果是负数,转lopincdl;如果是正数,则dl加一lop:incbx;修改指针loopnext;循环movcnt,dl;保存结果movax,4c00hint21hcodeendsendstart8、十六进制转换成十进制movax,amovbx,amulbxmulbxmulbxmo

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。