. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  实验9调试完毕,交流下,能改进的地方请提出(我未加闪烁)  [待解决] 回复[ 1次 ]   点击[ 242次 ]  
canmover
[帖 主]   [ 发表时间:2010-03-28 13:54 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2010-03-24 23:32
我就不注释了。新手,希望大家指教。
一、比较短的
assume cs:code
data segment
db 'welcome to masm!'
db 0ah,2ch,79h
data ends
code segment
start:mov ax,data
mov ds,ax
mov bx,0
mov ax,0b800h
mov es,ax
mov si,0
mov di,0
mov al,ds:[16]
mov cx,16
s:mov dx,cx
mov cl,[bx]
mov ch,0
sub cl,20h
jcxz s1
add cl,20h
mov ch,al
mov es:860h[si],cx
add si,2
inc bx
mov cx,dx
loop s
mov ax,4c00h
int 21h
s1:inc bx
mov cx,dx
dec cx
add di,1
add si,2
mov al,[di+16]
jmp short s
code ends
end start
二、比较长的
assume cs:code
wel segment
db 'welcome to masm!'
wel ends
col segment
dw 79h,2ch,0ah
col ends
stack segment
dw 4 dup (0)
code segment
start:mov ax,col
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,8
push ds:[0]
push ds:[2]
push ds:[4]
mov ax,wel
mov ds,ax
mov ax,0b800h
mov es,ax
mov si,0
mov cx,16
pop ax
s:mov dx,cx
mov cl,[bx]
mov ch,0
sub cl,20h
jcxz s1
add cl,20h
mov ch,al
mov es:860h[si],cx
add si,2
inc bx
mov cx,dx
loop s
mov ax,4c00h
int 21h
s1:inc bx
mov cx,dx
dec cx
add si,2
pop ax
jmp short s
code ends
end start
zcy87710
[第1楼]   [ 回复时间:2010-04-12 19:37 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2010-03-14 15:59
这也太……
 是可以简化的 多看看大家的程序
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved