• 实验九


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

    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);

     实验结果:

  • 相关阅读:
    eclipse新建web项目开发JSP
    配置tomcat系统日志--java eclipse
    Eclipse 导入外部项目无法识别为web项目并且无法在部署到tomcat下
    for和foreace的区别
    布局TextView和EditText区别,layout_width和lay_weight区别--Android Studio
    设备旋转,创建水平模式布局--Android studio
    关于点击Invalidate Caches/Restart禁止插件后,重新加载--Android Studio
    Android 全面插件化 RePlugin 流程与源码解析
    git分支开发,分支(feature)同步主干(master)代码,以及最终分支合并到主干的操作流程
    git使用流程
  • 原文地址:https://www.cnblogs.com/smallblog/p/10115994.html
Copyright © 2020-2023  润新知