微机原理汇编语言EMU8088/86学习笔记二——编程实现LEDDisplay的时钟功能

微机原理汇编语言EMU8088/86学习笔记二——编程实现LEDDisplay的时钟功能


前言

最近微机原理快考试了,复习的有点无聊,就打开了EMU8088编译器,发现里面有个virtual leddsiplay,就打算用他来简单写个类似于时钟的功能。
汇编的代码自己本身也不会写,所以写的比较难看,就当是个学习笔记了

一,代码

CSEG SEGMENT
    ASSUME CS:CSEG 
    
    INIT: MOV AX,0
          MOV CX,0
         
          MOV BL,10
          OUT 199,AX   ;199 is LED port
   
    
    START:INC AX
          OUT 199,AX
          PUSH AX		;judge second % BL
          DIV BL
          CMP AH,0
          JZ NEXT1
          POP AX
          JMP START  
               
               
    NEXT1:INC CX
          MOV AX,CX     ;judge minute %BL
          DIV BL
          CMP AH,0
          JZ  NEXT2
          JMP NEXT3
            
          
    NEXT2:MOV AX,CX 
          MUL BL
          MOV CX,AX
          JMP NEXT3   
          
    NEXT3:MOV AX,100
          MUL CX       
          JMP START 
                  
CSEG ENDS    

在virtual devices中打开LED_Display可以看到如下场景,目前好像是进到小时后,DIV BL保存到AL和AH的值会溢出,导致小时位显示有问题。
然后这里为了快速看到效果,进制就改成10了
在这里插入图片描述

总结

要是有大佬看的话,可以指点指点!!

Guess you like

Origin blog.csdn.net/lzzzzzzm/article/details/117878313