汇编语言(王爽版)学习笔记 第十四章 端口(检测点14.1、检测点14.2)

文章目录

    • 14.1 端口的读写
    • 14.2 CMOS RAM芯片
      • 检测点 14.1
    • 14.3 shl和shr指令
      • 检测点 14.2
    • 14.4 CMOS RAM中存储的时间信息

汇编语言(王爽版)学习笔记 第十四章 端口(检测点14.1、检测点14.2)_第1张图片

14.1 端口的读写

在访问端口的时候,CPU通过端口地址来定位端口。因为端口所在的芯片和CPU通过总线相连,所以,端口地址和内存地址一样,通过地址总线来传送。在PC系统中,CPU最多可以定位64KB个不同的端口。则端口地址的范围为0~65535。

端口的读写指令只有两条:in和out,分别用于从端口读取数据和往端口写入数据

在这里插入图片描述
汇编语言(王爽版)学习笔记 第十四章 端口(检测点14.1、检测点14.2)_第2张图片


14.2 CMOS RAM芯片

汇编语言(王爽版)学习笔记 第十四章 端口(检测点14.1、检测点14.2)_第3张图片
汇编语言(王爽版)学习笔记 第十四章 端口(检测点14.1、检测点14.2)_第4张图片

检测点 14.1

1.编程,读取CMOS RAM的2号单元的内容。

assume cs:code
code segment
start:  
		mov al,2
        out 70H,al  ;将2送入端口70H   
        in  al,71H  ;从端口71H读出2号单元的内容
        
        mov ax,4c00H
        int 21H
code ends
end start

2.编程,读取CMOS RAM的2号单元的内容。

assume cs:code
code segment
start:  
   	   mov al,2
       out 70H,al  ;要访问的地址(2号)写到70端口   
       mov al,0
       in  71,al  ;要读出的数据写到71端口
       
       mov ax,4c00H
       int 21H
code ends
end start

14.3 shl和shr指令

shl和shr是逻辑移位指令,shl是逻辑左移,shr是逻辑右移。
汇编语言(王爽版)学习笔记 第十四章 端口(检测点14.1、检测点14.2)_第5张图片
汇编语言(王爽版)学习笔记 第十四章 端口(检测点14.1、检测点14.2)_第6张图片
汇编语言(王爽版)学习笔记 第十四章 端口(检测点14.1、检测点14.2)_第7张图片
汇编语言(王爽版)学习笔记 第十四章 端口(检测点14.1、检测点14.2)_第8张图片
汇编语言(王爽版)学习笔记 第十四章 端口(检测点14.1、检测点14.2)_第9张图片

检测点 14.2

编程,用加法和移位指令计算(ax)=(ax)*10
提示:(ax)*10 = (ax)*2 + (ax)*8

assume cs:code
code segment
start:
	mov ax,10	;ax初值为10
	mov bx,ax	;先把ax的值给bx
	shl ax,1
	mov cl,3
	shl bx,cl
	add ax,bx
mov ax,4c00h
int 21h
code ends
end start

运行结果:
汇编语言(王爽版)学习笔记 第十四章 端口(检测点14.1、检测点14.2)_第10张图片


14.4 CMOS RAM中存储的时间信息

汇编语言(王爽版)学习笔记 第十四章 端口(检测点14.1、检测点14.2)_第11张图片

编程,在屏幕中间显示当前的月份。

汇编语言(王爽版)学习笔记 第十四章 端口(检测点14.1、检测点14.2)_第12张图片
汇编语言(王爽版)学习笔记 第十四章 端口(检测点14.1、检测点14.2)_第13张图片
汇编语言(王爽版)学习笔记 第十四章 端口(检测点14.1、检测点14.2)_第14张图片
程序代码如下:

CODES SEGMENT
    ASSUME CS:CODES
START:
    MOV Al,8
    out 70h,al
    in al,71h
    
    mov ah,al
    mov cl,4
    shr ah,cl
    and al,00001111b
    
    add ah,30h
    add al,30h
    
    mov bx,0b800h
    mov es,bx
    mov byte ptr es:[160*12+40*2],ah
    mov byte ptr es:[160*12+40*2+2],al
    
    
    
    INT 21H
CODES ENDS
    END START

运行结果:
汇编语言(王爽版)学习笔记 第十四章 端口(检测点14.1、检测点14.2)_第15张图片

你可能感兴趣的:(#,汇编)