RSS   



  可打印版本 | 推薦給朋友 | 訂閱主題 | 收藏主題 | 純文字版  


 


 
主題: [其他] [其它]使用組合語言INT21H 的2AH功能顯示出時間   字型大小:||| 
  本主題被作者加入到他/她的 Blog 中  
h80053
銀驢友〔中級〕
等級: 13等級: 13等級: 13等級: 13


十週年紀念徽章(五級)  

 . 積分: 720
 . 精華: 1
 . 文章: 2053
 . 收花: 5801 支
 . 送花: 8430 支
 . 比例: 1.45
 . 在線: 2473 小時
 . 瀏覽: 17320 頁
 . 註冊: 7427
 . 失蹤: 325
 . 台中
#1 : 2007-5-22 06:42 PM     只看本作者 引言回覆

首先先介紹一下他的功能:

INT 21H 的 2AH 功能執行之後

會把年 1980~2099 以 16 進制的碼 , 儲存於 CX , DH=月(1~12) , DL=日(1~31)

我本來是想用迴圈去寫,但是我寫不出來@@.
問了同學後我沒有用迴圈去做.

我們不用想也知道,今年一定是2007年.所以做出來的值一定要2007才正確.
但電腦上面顯示的是16位元的碼,所以要先除成10進位的碼我們才看的清楚.

先用小算盤的值給大家看
1.現在小算盤顯示的值為2007(10進制)

2.現在為2007的16進制

3.前面說過要讓16進制除10才會變成10進制以下為結果


除法必須要用16位元的除法器下去除.因為2007>255.
2^8=255所以用8位元除法是不夠的.
接著要把餘數提出來,餘數是我們要的.(剛剛小算盤沒有顯示餘數出來,但是以存到DX中)

===========以下為程式 PS:我現在只有做到顯示年份
.model small
.data
buffer word 10,?,10dup(?)
ccc    byte 10,?,10dup(?)

STRING  BYTE         "***************************************",10,13
        BYTE    " NOW                  TIME                  IS        ",10,13                               
        BYTE    "***************************************",10,13,"$"
.code
.startup


.STARTUP       
        MOV DX,OFFSET STRING
        MOV AH,09       
        INT 21H       

mov ah,2ah
int 21h

;=======
mov dx,0
mov ax,cx
mov bX,10
div bX

add dx,30h
mov dh,0
mov ccc[1],dl


mov dx,0
mov cx,ax
mov ax,cx
mov bx,10
div bx

add dx,30h
mov dh,0
mov ccc[2],dl


mov dx,0
mov cx,ax
mov ax,cx
mov bx,10
div bx

add dx,30h
mov dh,0
mov ccc[3],dl

mov dx,0
mov cx,ax
mov ax,cx
mov bx,10
div bx

add dx,30h
mov dh,0
mov ccc[4],dl

mov  dl,ccc[4]
mov  ah,02
int  21h
mov  dl,ccc[3]
mov  ah,02
int  21h
mov  dl,ccc[2]
mov  ah,02
int  21h
mov  dl,ccc[1]
mov  ah,02
int  21h
;========



.exit
.stack
end

=========

等等在補齊


相關關鍵字: 組合語言  






[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
deeping
開墾隊隊員
等級: 11等級: 11等級: 11等級: 11


今日心情

 . 積分: 300
 . 精華: 2
 . 文章: 278
 . 收花: 1698 支
 . 送花: 2214 支
 . 比例: 1.3
 . 在線: 6973 小時
 . 瀏覽: 47727 頁
 . 註冊: 7312
 . 失蹤: 3
#2 : 2007-5-23 09:53 AM     只看本作者 引言回覆

只是為了練習int 21h?還是單純為了讀時間日期值?

如果只是單純為了讀時間我覺的直接去讀cmos的date and time會比較簡單一點!!!

幫你補充一點點關於int 21h ah = 2Ah的東東^_^

INT 21 - DOS 1+ - GET SYSTEM DATE
        AH = 2Ah
Return: CX = year (1980-2099)
        DH = month
        DL = day
---DOS 1.10+---
        AL = day of week (00h=Sunday)


INT 21 - DOS 1+ - SET SYSTEM DATE
        AH = 2Bh
        CX = year (1980-2099)
        DH = month (1-12)
        DL = day (1-31)
Return: AL = status
            00h successful
            FFh invalid date, system date unchanged
Note:   DOS 3.3+ also sets CMOS clock; due to the limitations of the CLOCK$
          driver interface, the CMOS time is also updated to the current
          DOS time (which is the BIOS time-of-day clock with the default
          CLOCK$ driver)
[deeping 在  2007-5-26 01:22 AM 作了最後編輯]



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
h80053
銀驢友〔中級〕
等級: 13等級: 13等級: 13等級: 13


十週年紀念徽章(五級)  

 . 積分: 720
 . 精華: 1
 . 文章: 2053
 . 收花: 5801 支
 . 送花: 8430 支
 . 比例: 1.45
 . 在線: 2473 小時
 . 瀏覽: 17320 頁
 . 註冊: 7427
 . 失蹤: 325
 . 台中
#3 : 2007-5-23 06:40 PM     只看本作者 引言回覆

因該算是練習INT21H的功能吧.

因為很久沒寫程式了,懂的也不多.
會貼在板上也算是做紀錄.



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
h80053
銀驢友〔中級〕
等級: 13等級: 13等級: 13等級: 13


十週年紀念徽章(五級)  

 . 積分: 720
 . 精華: 1
 . 文章: 2053
 . 收花: 5801 支
 . 送花: 8430 支
 . 比例: 1.45
 . 在線: 2473 小時
 . 瀏覽: 17320 頁
 . 註冊: 7427
 . 失蹤: 325
 . 台中
#4 : 2007-6-1 11:37 PM     只看本作者 引言回覆

現在沒什麼時間把這一篇補完....


有時間在慢慢補



[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記
AGC
論壇音樂賢者
等級: 15等級: 15等級: 15等級: 15等級: 15
沒戲唱了

今日心情

 . 積分: 1239
 . 精華: 3
 . 文章: 2138
 . 收花: 9717 支
 . 送花: 462 支
 . 比例: 0.05
 . 在線: 1857 小時
 . 瀏覽: 3600 頁
 . 註冊: 8200
 . 失蹤: 0
 . U.S.S. AGC
#5 : 2007-7-4 07:26 PM     只看本作者 引言回覆

DOS CALL時間是CALL INT8,而INT8又是CALL INT1CH,不過沒差了,一個月前的文...


[如果你喜歡本文章,就按本文章之鮮花~送花給作者吧,你的支持就是別人的動力來源]
本文連接  
檢閱個人資料  發私人訊息  Blog  快速回覆 新增/修改 爬文標記

   

快速回覆
表情符號

更多 Smilies

字型大小 : |||      [完成後可按 Ctrl+Enter 發佈]        

溫馨提示:本區開放遊客瀏覽。
選項:
關閉 URL 識別    關閉 表情符號    關閉 Discuz! 代碼    使用個人簽名    接收新回覆信件通知
發表時自動複製內容   [立即複製] (IE only)


 



所在時區為 GMT+8, 現在時間是 2024-12-4 05:02 PM
清除 Cookies - 連絡我們 - TWed2k © 2001-2046 - 純文字版 - 說明
Discuz! 0.1 | Processed in 0.022808 second(s), 6 queries , Qzip disabled