2012-09-07 5 views
0

시스템 시간을 얻어서 인쇄해야합니다. 문제는 인쇄 방법을 모른다는 것입니다. 나는 아래 코드를 가지고 있는데, 내가 틀린 곳인지 모르겠다. 아래 시간의 시간 부분 만 쓰여집니다. 감사! :)조립 : 시스템 시간 인쇄

pc macro a  
mov ah, 02  
mov dl, a  
int 21h  
endm 

cseg segment para 'code'  
assume cs:cseg; ds:cseg; ss:cseg; es:cseg  
org 100h 

start: jmp begin 
hr db '0' 
begin: 
mov ax, 03h  ;clear screen 
int 10h 


mov ah, 2Ch 
int 21h 
mov hr1, ch 
mov bx, 10 
mov ah, 0 
mov al, hr1 
idiv bx 
add al, '0' 
add ah, '0' 
mov hr, al 
pc hr 
mov hr, ah 
pc hr 

int 20h 
cseg ends  
end start 
+1

... @Arno가 – Arno

+0

: 당신이 커피-HOWTO를 읽어 시작할 수 있습니다 (HTTP : //tldp.org/HOWTO/Coffee.html)에서 컴퓨터에 연결하는 방법을 설명합니다. – ninjalj

+0

@ninjalj : 힌트를 주셔서 감사합니다. _Kernel Hackers 'Guide_가 가장 마음에 듭니다. – Arno

답변

1

시간 만 인쇄 할 수있는 코드가 있습니다. "idiv bx"는 주석이 말하는대로하지 않습니다. "idiv bl"을 시도하십시오. 귀하의 매크로가 "뒤에서"쓰레기를 버리고 있습니다. ...

보다도, 프랭크들을 수정하고 그것을 다른 시도를 제공

내가 어셈블리에 커피를 양조하는 방법을 알고 싶습니다
+0

감사합니다. 이제 초까지 작업 중입니다. 오전이나 오후에있는 시간을 아는 것은 불가능합니다. 맞습니까? – shriekyphantom

+0

Dunno. 12 또는 24 번 채널로 이동합니까? (시스템 시간으로 이것을 결정하는 데 시간이 걸릴 수도 있습니다) –

+0

Ch가 24입니다. 고마워요. 처음 시도했을 때 시간을 PM으로 변경했을 때 같은 값을 반환하기 때문에 효과가 없다고 생각했습니다. 반환 값이 16 비트 레지스터에있는 경우, 예를 들어 cx에서 어떤 형식의 디비전을 수행해야합니까? – shriekyphantom