0
点赞
收藏
分享

微信扫一扫

王爽《汇编语言》第三版 实验10


1. 显示字符串

代码

assume cs:code
data segment
db 'Welcome to masm!',0
data ends

code segment
start:
mov dh,8 ;行
mov dl,3 ;列
mov cl,2 ;颜色 绿
mov ax,data
mov ds,ax
mov si,0
call show_str

mov ax,4c00h
int 21h

show_str:
push ax
push es
push di
push dx
push bx
push si

mov ax,0b800h ;显存显示地址起始位置
mov es,ax
mov di,0

mov al,0A0h ;每行
dec dh ;行号从0开始算, 所以8-1=7, 0-7
mul dh ;第N-1行
add di,ax

mov al,2 ;每列 0-1 2-3 4-5
dec dl ;与行号同理
mul dl ;第N-1列
add di,ax

mov bl,cl ;保存着色

s:
mov cl,[si] ;从字符串首地址开始
mov ch,0
jcxz ok ;循环字符串每个字符,直到遇见0,跳转到 标记 ok
mov es:[di],cl ;显存显示规则 每个字符占用两个字节 前者存储字符本身本身
mov es:[di+1],bl ;显存显示规则 后者存储闪烁、背景、高亮、前景等
add di,2
inc si
loop s

ok:
pop ax
pop es
pop di
pop dx
pop bx
pop si
ret

code ends

end start

结果

王爽《汇编语言》第三版 实验10_第三版

2. 解决除法溢出的问题

使用 000F(dx 高位) 4240(ax 低位) / 0A(cx 除数)
结果存储在 XXXX(dx 高位) XXXX(ax 低位) XX(cx 余数)

示例:
000F 4240 / 0A
1)0000 000F / 0A = 0001(商) … 0005(余数)
2)0005 4240 / 0A = 86A0 (商)… 0000 无余数
3)结果 0001 86A0

assume cs:code

code segment
start: mov ax,4240h
mov dx,000Fh
mov cx,0Ah
call divdw

mov ax,4C00h
int 21h

divdw: push ax
mov ax,dx
mov dx,0
div cx
mov bx,ax

pop ax
div cx
mov cx,dx
mov dx,bx

ret

code ends

end start

结果

王爽《汇编语言》第三版 实验10_汇编_02

3. 数值显示

assume cs:code
data segment
db 10 dup(0)
data ends

code segment
start: mov ax,12666
mov bx,data
mov ds,bx
mov si,0
call dtoc

mov dh,8
mov dl,3
mov cl,2
call show_str

mov ax,4c00h
int 21h

dtoc: push ax
push bx
push si

mov bx,10
mov si,0

s1: mov dx,0
div bx
add dx,30h
push dx
mov cx,ax
inc si
inc cx
loop s1

mov cx,si
mov si,0

s2: pop [si]
inc si
loop s2

pop si
pop bx
pop ax

ret


show_str: push ax
push es
push di
push dx
push bx
push si

mov ax,0b800h ;显存显示地址起始位置
mov es,ax
mov di,0

mov al,0A0h ;每行
dec dh ;行号从0开始算
mul dh ;第N行
add di,ax

mov al,2 ;每列
mul dl ;第N列
add di,ax

mov bl,cl ;保存着色

s:
mov cl,[si]
mov ch,0
jcxz ok
mov es:[di],cl
mov es:[di+1],bl ;显存显示规则
add di,2
inc si
loop s

ok:
pop ax
pop es
pop di
pop dx
pop bx
pop si
ret

code ends

end start

显示结果

王爽《汇编语言》第三版 实验10_第三版_03


举报

相关推荐

0 条评论