汇编语言(王爽)--实验10编写子程序
2018-04-03 19:18
309 查看
assume cs:code,ds:data
data segment
db 'welcome to masm!',0
data ends
code segment
start: mov dh,8
mov dl,1
mov cl,2
mov ax,data
mov ds,ax
mov si,0
call show_str
mov ax,4c00h
int 21h
;显示字符串函数 dh为行号dl为列号cl为颜色
show_str:mov bl,cl
push cx
push si
mov ax,0B800H
mov es,ax ;显存段地址进es
mov al,160 ;行号和列号的偏移地址准备就绪
mul dh
mov di,ax
mov al,2
mul dl
add di,ax
s:mov cl,ds:[si]
mov ch,0
jcxz ok ;到字符串末尾0跳到ok
mov es:[di],cl
mov es:[di+1],bl
add di,2
inc si
jmp s
ok:pop si
pop cx
ret
code ends
end start
assume cs:code,ss:stack
stack segment
dw 16 dup(0)
stack ends
code segment
start:mov ax,0ffffh ;低16位
mov dx,0fffh ;高16位
mov cx,0ah ;除数
call divdw
mov ax,4c00h
int 21h
;32位除法 结果:dx放搞16位,ax放低16位 cx放商
divdw:mov bx,ax ;低16位暂存
mov ax,dx
mov dx,0 ;dx ax
div cx ;0 被除数高16位
push ax ;商push
;(rem(H/N)*65536+L) /N
; 上一步的余 低16位 除数
mov ax,bx ; DX bx->ax cx
div cx
;事情做完
mov cx,dx ;DX余,ax商
pop bx
mov dx,bx
ret
code ends
end start
assume cs:code,ds:data,ss:stack data segment db 16 dup(0) data ends stack segment db 16 dup(0) stack ends code segment start:mov ax,34694 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 ;将word型数据转变位表示十进制数的字符串,字符串以0为结尾符 ;参数ax,写入ds:[si] dtoc:push si mov di,0 dtocs1:mov bx,10 ;16位除法 mov dx,0 div bx add dx,30h ;数字是倒叙的,所以要利用栈后进先出的特性改顺序 push dx inc di mov cx,ax jcxz dtocs2 jmp dtocs1 ;正序 dtocs2:mov cx,di dtocs3:pop ds:[si] inc si loop dtocs3 mov ds:[si],0 ;0结尾 pop si ret ;;显示字符串函数 dh为行号dl为列号cl为颜色 show_str:mov bl,cl push cx push si mov ax,0B800H mov es,ax ;显存段地址进es mov al,160 ;行号和列号的偏移地址准备就绪 mul dh mov di,ax mov al,2 mul dl add di,ax shows1:mov cl,ds:[si] mov ch,0 jcxz showok ;到字符串末尾0跳到ok mov es:[di],cl mov es:[di+1],bl add di,2 inc si jmp shows1 showok:pop si pop cx ret code ends end start
相关文章推荐
- 3.数值显示-汇编语言(王爽)-实验10 编写子程序
- 汇编语言 第三版 王爽 实验10-1 编写子程序 之 显示字符串
- 2.解决除法溢出问题-汇编语言(王爽)-实验10 编写子程序
- 汇编语言 第三版 王爽 实验10-2 编写子程序 之 解决除法溢出问题 divdw
- 王爽 汇编语言 第三版 实验10 编写子程序
- 汇编语言(王爽)实验十 编写子程序
- 汇编语言(王爽)--实验11 编写子程序
- 王爽 汇编 实验11:编写子程序letterc 解答
- 王爽 汇编语言 第三版 实验12 编写0号中断的处理程序
- ***汇编语言 实验16 编写包含多个功能子程序的中断例程
- 汇编语言--王爽--实验9 子程序
- 汇编语言 第三版 王爽 实验12 编写0号终端的处理程序
- 王爽 汇编语言 实验十 汇编子程序设计
- 王爽《汇编语言》实验10:编写子程序divdw 解答
- 王爽《汇编语言》实验10:编写子程序divdw 解答
- 汇编 实验10 编写子程序(一)
- 汇编语言----实验16--编写包含多个功能子程序的中断例程
- 王爽 汇编 实验16 编写包含多个功能子程序的中断例程
- 汇编语言 第三版 王爽 实验10 显示字符串 show_str 独立完成
- 汇编语言(王爽)---实验10