(1)
mov al,2 ;將2送入al,宣告埠將要被通訊
out 70h,al ;向70h埠中寫入al的值
in al,71h ;從71埠中讀出資料放到al中
(2)
從這裡我們可以看出,out 70h,al像是乙個呼叫宣告,表示要呼叫哪乙個埠,然後再通過71h in就是讀出,out就是寫入
assume cs:code
code segment
start: mov al,2
out 70h,al ; ① 要訪問的cmos ram單元位址為 (al)=2
mov al,0
out 71h,al ; ② 寫入資料到選定的cmos ram單元位址
mov ax,4c00h
int 21h
code ends
end start
mov bx,ax ;先將ax送入bx儲存
mov cl,3 ;移位位數大於1,用cl儲存
shl ax,cl ;將ax左移3位
shl bx,1 ;將bx左移1位
add ax,bx ;將二者相加送入ax中,即為(ax)=(ax)*10
**來自老梧桐
assume cs:code,ds:data,es:info_num
data segment
db '11/11/11 11:11:11$' ;預設字串
data ends
info_num segment
db 9,8,7,4,2,0 ;埠時間位址列表
info_num ends
code segment
start:
mov ax,data
mov ds,ax
mov si,0 ;ax:si初始指向字串首
mov ax,info_num
mov es,ax
mov bp,0 ;指向埠時間位址列表首
mov cx,6
s: push cx
mov al,es:[bp]
out 70h,al
in al,71h
mov ah,al ;暫存al
mov cl,4
shr ah,cl ;獲取bcd碼高四位
and al,00001111b ;獲取bcd碼低四位
add al,30h
add ah,30h
mov ds:[si],ah
mov ds:[si+1],al ;將時間資訊寫入字串指定位置
add si,3 ;指向字串下一寫入位置
pop cx
loop s
mov ah,2
mov bh,0
mov dh,12
mov dl,50
int 10h ;呼叫系統bios中斷例程設定游標位置
mov ah,9
mov dx,0 ;指向字串首
int 21h ;呼叫dos中斷例程顯示字串
mov ah,2
mov bh,0
mov dh,24
mov dl,0
int 10h ;重置游標位置
mov ax,4c00h
int 21h
code ends
end start
《組合語言》習題2
組合語言程式設計 測試題 一 填空 15分 1 計算機語言指令包括 2 資料暫存器組包括ax,bx,cx,dx 其中ax稱 bx稱為,cx 稱,dx 稱。四個段暫存器分別是,ip 暫存器中存放的是。4 資料的傳送的基本單位分為三種位元組 字 雙字,其中乙個整數位元組的表示範圍是 乙個整數字的表示範圍...
組合語言 AT T組合語言
這兩天的pwn題環境都是在linux中,採用的組合語言是 at t 格式。之前學習的是intel格式的8086彙編,今天學習了下at t組合語言。基於x86 架構的處理器所使用的彙編指令一般有兩種格式 操作intel格式at t格式 暫存器命名 push eax pushl eax 常數 立即運算元...
組合語言 練習題5 2
將從鍵盤輸入的n 個有符號數儲存到陣列 tab,找出 n個有符號數中絕對值大於 x的最小負奇數存放到 min單元,如果沒有找到則 min單元存放 0。在終端上顯示 min的絕對值。tab dd x1,xn x dd xx 無符號數,自己設定 min dd 要求 1 求資料 min的功能用子程式實現 ...