⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 u1.asm

📁 操作系统实验教程核心技术与编程实例书中地例子代码
💻 ASM
字号:
.MODEL HUGE
STACK       SEGMENT STACK PARA 'STACK'
            DB 200 DUP(0)
STACK       ENDS
CODE        SEGMENT WORD PUBLIC 'CODE'
            ASSUME CS:CODE,DS:DATA,ss:stack
pp1         PROC FAR
START:      .386P
            CLI
            MOV AX,DATA
            MOV DS,AX
            MOV AX,STACK
            MOV SS,AX
            MOV SP,200
            STI
            ; set cursor
            MOV AH,02H 
            MOV BH,0
            MOV DX,0301H
            MOV DL,0
            INT 80H

;int 90h ;ok
;cli
            MOV DX,OFFSET msg_k   ;prompt
            MOV AH,9
            INT 21H

            mov si,0
l_out:      
            mov edi,03FFFFFFH
l_in:       
            dec edi
            jnz l_in
            MOV AX,SI
            CALL BIN_TO_ASCII
            LEA DX,ASCII_BUF
            MOV AH,9
            INT 21H
            INC si
            CMP SI,10 ;20
            JNE L_OUT
pp1_end:    
            LEA DX,OK_MSG
            MOV AH,9
            INT 21H
pp1_end1:    
            MOV AX,4C00H
            INT 21H
            ;
pp1         ENDP

BIN_TO_ASCII PROC FAR
            ; input AX=binary value
            ; output ASCII_BUF:string 
            PUSH CX 
            PUSH DX 
            PUSH SI 
            MOV CL,020H
            MOV BYTE PTR ASCII_BUF,CL
            MOV BYTE PTR ASCII_BUF+1,CL
            MOV BYTE PTR ASCII_BUF+2,CL
            MOV BYTE PTR ASCII_BUF+3,CL
            MOV CX,10
            LEA SI,ASCII_BUF+4
BTOA1:      CMP AX,10
            JB  BTOA2
            XOR DX,DX
            DIV CX
            OR  DL,30H
            MOV [SI],DL
            DEC SI
            JMP BTOA1
BTOA2:      OR  AL,30H
            MOV [SI],AL        ;
            POP SI
            POP DX
            POP CX
            RET
BIN_TO_ASCII ENDP

CODE        ENDS

DATA        SEGMENT PUBLIC 'DATA'
ASCII_BUF   DB 5 DUP(30H),'$'
t_BUF       DB 10240 DUP(0)
OK_MSG      DB 'U1_end, Bye!  $'
msg_k       DB 'U1_running $'
msg_ss      DB 'ss: $'
msg_cs      DB 'cs: $'
DATA        ENDS
            END START

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -