汇编学习(九)8086汇编拾遗 (8)

原创 2016年05月31日 21:26:35
端口:

从CPU的角度,简单来看,CPU将这些硬件设备进行了统一的编址。一些硬件被编进的地址就变成了对CPU 读取地址的接口。

端口的读写指令只有2条:

in: 从端口读入数据

out:从端口读出数据

注意这里只能使用AX 或 AL 来存放从端口读入的或从端口读出的数据。
assume cs:code

code segment

    start:
        mov al,2
        out 70h,al
        in  al,71h

        mov al,2
        out 70h,al
        mov al,0
        out 71h,al

        mov ax,4c00h
        int 21h

code ends

end start
shr 和 shl 指令 逻辑左移,逻辑右移。 使用加法和位移指令计算 ax = ax*10
assume cs:code

code segment

    start:
        mov ax,2
        shl ax,1
        mov bx,ax
        shl ax,1
        shl ax,1
        add ax,bx

        mov ax,4c00h
        int 21h

code ends

end start
显示当前的日期:
assume cs:code

data segment

    time db 'yy/mm/dd hh:mm:ss$'
    table db 9,8,7,4,2,0

data ends

code segment

    start:
        mov ax,data
        mov ds,ax
        mov si,offset table
        mov di,offset time

        mov cx,6

     s: 
        push cx
        mov al,ds:[si]
        out 70h,al
        in  al,71h

        mov ah,al
        mov cl,4
        shr ah,cl

        add al,00001111b

        add ah,30h
        add al,30h

        mov ds:[di],ah
        mov ds:[di+1],al

        inc si
        add di,3

        pop cx
        loop s

        mov ah,0
        mov bh,0
        mov dh,10
        mov dl,40
        int 10h

        mov dx,offset time
        mov ah,9
        int 21h

        mov ax,4c00h
        int 21h

code ends
end start
 

查看原文:http://zmrlinux.com/2016/05/31/%e6%b1%87%e7%bc%96%e5%ad%a6%e4%b9%a0%ef%bc%88%e4%b9%9d%ef%bc%898086%e6%b1%87%e7%bc%96%e6%8b%be%e9%81%97-8/
版权声明:本文为博主原创文章,未经博主允许不得转载。

汇编学习(八)8086汇编拾遗 (7)

int 中断指令 使用方式: int n.  n 为中断类型码,它的功能是引发中断,n 为引发的中断号。 先写一个中断程序的例子吧,安装中断7ch 中断例程,计算一个字型数的平方。 ...

汇编学习(六)8086汇编拾遗 (5)

8086 标志寄存器 8086 的最后一个比较重要的寄存器 标志寄存器 状态寄存器的三种作用: @用来存储相关指令的某些执行结果 @用来为CPU执行相关指令提供行为依据 ...

汇编学习(十三)8086汇编拾遗 (12)

王爽的《汇编语言》虽然结束了,但是我们的思考还要继续,结下来就要进入X86汇编语言的学习了,但是思考还要继续。 指令拾遗,其实指令还有太多,这里只能写一些有限的: xchg:   交换指令...

汇编学习(五)8086汇编拾遗 (4)

汇编模块化成程序语言设计 使用寄存器来存储参数和结果是最常用使用的方法。对于存放参数的寄存器和存放结果的寄存器,调用者和子程序的读写操作恰恰相反,调用者将参数送入寄存器,从结果寄存器中取到返回值...

8086汇编学习笔记8-转移指令

修改IP,或同时修改CS和IP的指令称为转移指令 只修改IP时,称段内转移,段内转移又分为短转移和近转移,是根据IP修改范围不同而区分的,短转移修改IP范围为-128~127,近转移修改IP范围为-...

汇编学习--8086CPU基础

CPU的主要部件是寄存器

8086汇编学习之[BX],CX寄存器与loop指令,ES寄存器等

一、汇编程序的基本格式:1、基本格式与解析:assume cs:codeseg //assume假设CS寄存器与codeseg段有关联,codeseg段本就是代码段codeseg segment ...

8086汇编学习之代码段、数据段、栈段与段地址寄存器

同类学习笔记总结: (一)、8086汇编学习之基础知识、通用寄存器、CS/IP寄存器与Debug的使用 (二)、8086汇编学习之DS寄存器、SS/SP寄存器 (三)、8086汇编学习之[B...

8086汇编学习笔记4-指令

汇编指令,有相对应的机器指令 1. 数据传送指令mov mov ax, bx 2. 加法指令add mov ax, 1 mov bx, 2 add ax, bx;ax=ax+bx 执行后...

8086汇编学习之DS寄存器、SS/SP寄存器

相关博客:8086汇编基础知识、通用寄存器、CS/IP寄存器与Debug的使用 一、DS寄存器一个8086CPU寄存器均是16位的,而数据类型有以下两种: 1Byte = 8bit (字节型数据)...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:汇编学习(九)8086汇编拾遗 (8)
举报原因:
原因补充:

(最多只允许输入30个字)