实验九 根据材料编程

实验任务

实验任务1

; 在屏幕上输出内存单元中的十进制两位数
assume cs:code, ds:data
data segment
     db 12
     db 0,0   ; 前一个字节用于保存商,后一个字节用于保存余数
data ends
code segment
start:
      mov ax,data
      mov ds,ax        ; 补全指令,使得ds <-- data段地址
      
      mov ah,0
      mov al,ds:[0]   ; ax <-- data段字节单元的被除数12
      mov bl,10
      div bl
      mov  ds:[1],al    ; 补全代码,让商保存到data段注释中指定的单元
      mov  ds:[2],ah    ; 补全代码,让余数保存到data段注释中指定的单元

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

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

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

实验任务2

assume cs:code, ds:data
data segment
     db 12,35,96,55,67
     db 0,0
data ends
code segment
start:
      mov ax,data
      mov ds,ax
      
      mov bx,0
      mov cx,5
      s:    mov ah,0
            mov al,ds:[bx]
            mov dl,10
            div dl
            mov ds:[5],al
            mov ds:[6],ah

            mov ah,2
            mov dl,ds:[5]
            add dl,30h
            int 21h

            mov ah,2
            mov dl,ds:[6]
            add dl,30h
            int 21h

            mov ah,2
            mov dl,' '
            int 21h

            inc bx
      loop s
      mov ax,4c00h
      int 21h
code ends
end start

实验任务3

assume ds:data, cs:code
data segment
db 'welcome to masm!' 
db 2H,24H,71H 
data ends

code segment
start: mov ax,data
mov ds,ax 
mov ax,0b800H
mov es,ax 

mov bx,0
mov bp,16
mov si,0710h
mov cx,3
s:  mov bx,cx
    mov di,0
    mov cx,16
        s0: mov ax,0
        mov al,[di]
        mov ah,[bp]
        mov es:[si],ax
        inc di
        add si,2h
    loop s0
    add si,80h
    mov cx,bx
    inc bp
loop s 
mov ax,4c00h
int 21h
code ends
end start

总结与体会

本次实验包括了 使用int 21h的2号子功能完成单个字符的输出 和利用彩色字符的显示缓冲区输出彩色字符,而这些功能都由材料告知,因此要具备阅读材料分析材料的能力,快速上手材料提及的功能内容

posted @ 2018-12-10 09:33  豆浆油条_1  阅读(143)  评论(0编辑  收藏  举报