鱼C论坛

 找回密码
 立即注册
查看: 2593|回复: 0

[学习笔记] 汇编语言上天之路67-18(端口)

[复制链接]
发表于 2017-7-18 11:40:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
汇编语言上天之路67-18(端口)
        CPU可以从三个地方直接读写数据:
                1.CPU内部寄存器
                2.内存单元
                3.端口
       
        对端口只能用in(读取数据),out(写入数据)指令
       
        在in和out指令中,只能用ax(16位端口)或al(8位端口)来存放端口读入或要发送到端口中的数据
        0-255内的端口:
                in al,20h
                out 20h,al

        256-65535(端口号放在dx中):
                mov dx,3f8h
                in al,dx
                out dx,al
       
        CMOS RAM芯片:
        0-dh存放时间信息,两个端口,70h,71h,向70h写入地址信息,71h读出数据信息
       
        shl:逻辑左移命令(数据左移,将最后移出的一位写入CF中,移位用0填充)
                1.shl al,1
                则是将al二进制位像左移1(相当于x2)
               
                2.如果左移位数大于1,要用cl存放移动位数
       
        shl:逻辑右移命令(数据右移,将最后移出的一位写入CF中,移位用0填充)
                1.shl al,1
                则是将al二进制位像右移1(相当于÷2)
               
                2.如果右移位数大于1,要用cl存放移动位数
       


实验14:
assume cs:code

stack segment
        db "        "        ;8字节的栈空间
stack ends

code segment
                start:
                        mov ax,stack
                        mov ss,ax
                        mov sp,8
                        
                        mov ah,0
                        
                        mov al,0
                        out 70h,al
                        in al,71h
                        push ax
                        
                        mov al,2
                        out 70h,al
                        in al,71h
                        push ax
                        
                        mov al,4
                        out 70h,al
                        in al,71h
                        push ax
                        
                        mov al,7
                        out 70h,al
                        in al,71h
                        push ax
                        
                        mov al,8
                        out 70h,al
                        in al,71h
                        push ax
                        
                        mov al,9
                        out 70h,al
                        in al,71h
                        push ax
                        
                        mov ax,0b800h
                        mov ds,ax
                        mov si,160*12+40*2
                        mov cx,6
                s:
                        mov bx,cx
                        pop ax
                        mov ah,al
                        mov cl,4
                        shr ah,cl
                        and al,00001111b
                        
                        add ah,30h
                        add al,30h
                        
                        mov byte ptr [si],ah
                        mov byte ptr [si+1],02h
                        mov byte ptr [si+2],al
                        mov byte ptr [si+3],02h
                        mov byte ptr [si+4],20h

                        add si,6
                        mov cx,bx
                        loop s
                        
                        mov ax,4c00h
                        int 21h

code ends
end start

评分

参与人数 1鱼币 +2 收起 理由
小甲鱼 + 2

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-24 21:04

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表