zoukankan      html  css  js  c++  java
  • 实验九

    实验一:在屏幕上输出内存单元中的十进制两位数

    assume cs:code, ds:data
    data segment
    db 12
    db ?,? ; 前一个字节用于保存商,后一个字节用于保存余数
    data ends
    code segment
    start:
    ××××
    ×××× ; 补全指令,使得ds <-- data段地址

    mov ah,0
    mov al,ds:[0] ; ax <-- data段字节单元的被除数12
    mov bl,10
    div bl
    mov ××,al ; 补全代码,让商保存到data段注释中指定的单元
    mov ××,ah ; 补全代码,让余数保存到data段注释中指定的单元

    mov ah,2
    mov dl,×× ; 补全代码,使得dl <-- data段中保存的商的字节单元数值
    ×××× ; 补全代码,使得dl中的数值转换为数字字符
    int 21h

    mov ah,2
    mov dl,×× ; 补全代码,使得dl <-- data段中保存余数的字节单元数值
    ×××× ; 补全代码,使得dl中的数值转换为数字字符
    int 21h

    mov ax,4c00h
    int 21h
    code ends
    end start

     实验代码如下:

    由实验微视频可知:如果除数为8位,则AL储存除法操作的商,AH储存除法操作的余数;如果除数为16位,则AX储存除法操作的商,DX储存除法操作的余数

    因为data不能直接调用,所以间接放在ax中; int 21h的2号子功能,完成单个字符输出的方法,2号中断表示在显示器屏幕上显示;

    实验结果:

     实验二:

    assume cs:code, ds:data
    data segment
    db 12,35,96,55,67
    data ends
    code segment
    start:
    ; 补全程序,参考t1.asm,综合应用以下知识完成:
    ; (1) loop指令、内存单元地址的灵活表示
    ; (2) div指令, 数字→数字字符的转换
    ; (3) int 21h的2号子功能,完成单个字符输出的方法,即:
    ; mov ah,2
    ; mov dl,待输出字符或其ASCⅡ码
    ; int 21h
    ; (4) 数据和数据之间以空格间隔的实现: 使用(3)输出空格字符

    mov ax,4c00h
    int 21h
    code ends
    end start

    实验代码如下:

     实验二和实验一相类似,实验一是单个数据输出,实验二则是多组,所以是要用loop指令,且多加一组空格控制间距。

    实验三:在屏幕中间分别显示绿色,绿底红色,白色蓝底的字符串’welcome to masm!’

    实验代码如下:

    重点: 三次循环,控制颜色的二进制(00000010b,00100100b,01110001b);

     实验结果:

  • 相关阅读:
    在Python中调用C++模块
    [转载]科学家真懂统计学吗?
    [原]基因组变异检测概述
    [原]测序量估计
    软考之路—解答数据流图
    软考之路-搞定ER图到关系模式
    软考之路-网络攻击:主动攻击和被动攻击
    软考之路-计算机病毒
    初识ADO.net-访问数据的两种方式
    vb.net小试三层架构
  • 原文地址:https://www.cnblogs.com/smallblog/p/10115994.html
Copyright © 2011-2022 走看看