883 TITLE Ex4.ASM ;===== Inmatning av (ASCII)HEX-tecken tills ges. ;===== Efter konvertering ASCII->HEX lagras tecknen i DX i ordning 1,2,3,4 ;------------------------------------------------------------------------- CR EQU 0Dh LF EQU 0Ah ;------------------------------------------------------------------------- CSEG SEGMENT ASSUME CS:CSEG,DS:CSEG ORG 100H Start: jmp begin ;------------------------------------------------------------------------- ;====== L„s in tecken med echo Hex_In PROC NEAR mov dx,00h ;Nollst„ll register Next_char: mov ah,01h ;GetChar int 21h ;------------------------------------------------------------------------- ;==== Testa om cmp al,cr jz Avsluta ;------------------------------------------------------------------------- call Asc2Hex ;Konvertera ASCII -> HEX cbw ;Konvert Byte -> Word mov cl,04h ;F”rbered shift 4 ggr sal dx,cl add dx,ax ;Spara AX i DX jmp Next_Char ;Ny inmatning Avsluta: ret Hex_In ENDP ;------------------------------------------------------------------------- ;==== Konvertering ASCII -> HEX Asc2Hex PROC NEAR cmp al,'F' ;ˇr tecken gement ? jc Ej_gem ;Om inte hoppa ”ver maskningen and al,0dfh ;Om gemen maska med DFh = 223d ;DFh = 1101 1111b Ej_gem: sub al,30h ;Mot HEX, minska med 30h cmp al,0ah ;ˇr tecken < 0ah = 10d ? jc siffra ;Om s† hoppa ”ver subtr med 7 sub al,07h ;Om tecken > 9 minska med 7 Siffra: ret Asc2Hex ENDP ;======================================================================== Begin: call Hex_In ret ;------------------------------------------------------------------------- CSEG ENDS END Start ;-------------------------------------------------------------------------- . 0