鱼C论坛

 找回密码
 立即注册
查看: 2198|回复: 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:
  1. assume cs:code

  2. stack segment
  3.         db "        "        ;8字节的栈空间
  4. stack ends

  5. code segment
  6.                 start:
  7.                         mov ax,stack
  8.                         mov ss,ax
  9.                         mov sp,8
  10.                        
  11.                         mov ah,0
  12.                        
  13.                         mov al,0
  14.                         out 70h,al
  15.                         in al,71h
  16.                         push ax
  17.                        
  18.                         mov al,2
  19.                         out 70h,al
  20.                         in al,71h
  21.                         push ax
  22.                        
  23.                         mov al,4
  24.                         out 70h,al
  25.                         in al,71h
  26.                         push ax
  27.                        
  28.                         mov al,7
  29.                         out 70h,al
  30.                         in al,71h
  31.                         push ax
  32.                        
  33.                         mov al,8
  34.                         out 70h,al
  35.                         in al,71h
  36.                         push ax
  37.                        
  38.                         mov al,9
  39.                         out 70h,al
  40.                         in al,71h
  41.                         push ax
  42.                        
  43.                         mov ax,0b800h
  44.                         mov ds,ax
  45.                         mov si,160*12+40*2
  46.                         mov cx,6
  47.                 s:
  48.                         mov bx,cx
  49.                         pop ax
  50.                         mov ah,al
  51.                         mov cl,4
  52.                         shr ah,cl
  53.                         and al,00001111b
  54.                        
  55.                         add ah,30h
  56.                         add al,30h
  57.                        
  58.                         mov byte ptr [si],ah
  59.                         mov byte ptr [si+1],02h
  60.                         mov byte ptr [si+2],al
  61.                         mov byte ptr [si+3],02h
  62.                         mov byte ptr [si+4],20h

  63.                         add si,6
  64.                         mov cx,bx
  65.                         loop s
  66.                        
  67.                         mov ax,4c00h
  68.                         int 21h

  69. code ends
  70. end start
复制代码

评分

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

查看全部评分

本帖被以下淘专辑推荐:

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

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 08:18

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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