查看積分策略說明發表回覆
Discuz! 代碼
提示插入
直接插入
說明訊息

插入粗體文本 插入斜體文本 插入下劃線 置中對齊 插入超級連結 插入信件位址 插入圖像 插入 flash 插入代碼 插入引言 插入列表
刪除線 直線分隔線 虛線分隔線
    
添加文字底框
內容 [字數檢查]:

表情符號

更多 Smilies
字型大小 |||
溫馨提示:本區開放遊客瀏覽。


文章關鍵字 : [功能說明]
(關鍵字可加強搜索準確性, 如關鍵字多於一組, 請以 , 作分隔, e.g. : 阿笨,shiuh,第一笨)

 關閉 URL 識別 | html 禁用
 關閉 表情符號 | 表情符號 可用
 關閉 Discuz! 代碼 | Discuz! 代碼 可用
使用個人簽名
接收新回覆信件通知
推薦放檔網絡空間

檔案(Torent, zip等)
  1. freedl
  2. multiupload
  3. btghost
  4. 便當狗
  5. mediafire
  6. pillowangel
圖片(JPG, GIF等)
  1. hotimg
  2. tinypic
  3. mousems2
  4. imageshack
  5. imm.io
>>>歡迎推薦好用空間


最新10篇文章回顧
AGC

 發表於 2007-7-4 07:26 PM

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


h80053

 發表於 2007-6-1 11:37 PM

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


有時間在慢慢補


h80053

 發表於 2007-5-23 06:40 PM

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

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


deeping

 發表於 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 作了最後編輯]


h80053

 發表於 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

=========

等等在補齊





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