彙編語言(王爽版)學習筆記 第十四章 端口(檢測點14.1、檢測點14.2)


在這裏插入圖片描述

14.1 端口的讀寫

在訪問端口的時候,CPU通過端口地址來定位端口。因爲端口所在的芯片和CPU通過總線相連,所以,端口地址和內存地址一樣,通過地址總線來傳送。在PC系統中,CPU最多可以定位64KB個不同的端口。則端口地址的範圍爲0~65535。

端口的讀寫指令只有兩條:in和out,分別用於從端口讀取數據和往端口寫入數據

在這裏插入圖片描述
在這裏插入圖片描述


14.2 CMOS RAM芯片

在這裏插入圖片描述
在這裏插入圖片描述

檢測點 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.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.4 CMOS RAM中存儲的時間信息

在這裏插入圖片描述

編程,在屏幕中間顯示當前的月份。

在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
程序代碼如下:

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

運行結果:
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章