微机原理实验 系列

**

微机原理实验 系列

**
前言
第一次写博客,小白一只,只是因为现在我正在上这门课,在网上找不到相关代码QAQ,于是只好自己在实验室慢慢啃,不过收获真心很多,而且自己确实觉得理解地更透彻了,于是想分享一下自己的代码~~PS:估计只有选了这门课的同学才能知道我在说什么Orz,其实就是DOS下汇编。

参考的微机实验书是北大内部教材。

                  实验一  汇编语言和DOS系统

(一)汇编语言的编译与调试
代码就在书上(以后的几个实验都会有样例代码,在此就不赘述了)

(二)键盘输入和屏幕输出处理
这个代码较为简单,熟悉一下DOS下的系统调用就好了~

DATA SEGMENT
        ADDER DW 0
DATA ENDS

STACK SEGMENT
        DW 128H DUP(0)
STACK ENDS

CODE SEGMENT
        ASSUME CS:CODE,DS:DATA,ES:DATA,SS:STACK
START:
        MOV AX,DATA
        MOV DS,AX
        MOV ES,AX
        CALL IN_NUM
        MOV AL,ADDER
        MOV ADDER,0
        CALL IN_NUM
        MOV CL,ADDER
        ADD AL,CL
        DAA
        MOV BL,AL
       ; PUSH AL
        JNC NEXT
        MOV DL,'1'
        MOV AH,02H
        INT 21H
       ; POP AL
NEXT:   ;MOV BL,0
        ;MOV BL,AL
        MOV AL,BL
        MOV CL,4  
        SHR AL,CL
        ADD AL,'0'
        MOV DL,AL
        MOV AH,02H
        INT 21H
        AND BL,0FH
        ADD BL,'0'
        MOV DL,BL
        MOV AH,02H
        INT 21H
        MOV AX,4C00H
        INT 21H

IN_NUM PROC NEAR
        PUSH AX
        PUSH CX
RE_IN:  MOV AH,01H
        INT 21H
        CMP AL,0DH
        JZ EX_IN
        SUB AL,'0'
        JL RE_IN
        CMP AL,9
        JG RE_IN
        MOV AH,ADDER
        MOV CL,4
        SHL AH,CL
        ADD AH,AL
        MOV ADDER,AH
        JMP RE_IN
EX_IN:  POP CX
        POP AX
        RET
IN_NUM ENDP

CODE ENDS
END START

希望有帮助。

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值