. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  自己做的实验9,菜鸟刚学,用的笨办法,请神人们指教。该怎么简化程序,谢谢  [待解决] 回复[ 6次 ]   点击[ 200次 ]  
lzh22355495
[帖 主]   [ 发表时间:2011-08-07 20:58 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2010-09-17 02:05
ssume cs:codesg,ds:datasg
datasg segment
db 5 dup ('welcome to masm!')
db 02H,24H,71H
datasg ends
codesg segment
start:mov ax,datasg
mov ds,ax
mov bx,0
mov ax,0b800H
mov es,ax
mov di,06e0H
mov cx,80
s:mov al,ds:[bx]
  mov es:[di],al
  mov ah,ds:[50H]
  mov es:[di+1],ah
  inc bx
  add di,2
  loop s


mov bx,0
mov cx,80
s1: mov al,ds:[bx]
mov es:[di],al
mov ah,ds:[51H]
mov es:[di+1],ah
inc bx
add di,2
loop s1


mov bx,0
mov cx,80
s2: mov al,ds:[bx]
mov es:[di],al
mov ah,ds:[52H]
mov es:[di+1],ah
inc bx
add di,2
loop s2

mov ax,4c00H
int 21H
codesg ends
end start
tomato
[第1楼]   [ 回复时间:2011-08-07 22:32 ]   [引用]   [回复]   [ top ] 
荣誉值:405
信誉值:0
注册日期:2008-01-19 14:51
三个循环能写为1个双重循环吗?
chinatree
[第2楼]   [ 回复时间:2011-08-07 23:16 ]   [引用]   [回复]   [ top ] 
荣誉值:118
信誉值:0
注册日期:2011-07-07 22:59
能,我用手机给你写一个吧
data segment
db "welcome to masm!"
data ends
code segment
assume cs:code,ds:data
sta:mov ax,data
mov ds,ax
mov ax,0b800h
mov es,ax;显存地址
mov cx,10h
xor di,di
mov si,1760d;差不多在中间吧
s:mov ah,[di]
mov es:[si],ah
mov al,2
mov es:[si+1],al
mov es:[si+160],ah;第二行
mov al,24h
mov es:[si+161],al
mov es:[si+320],ah;第三行
mov al,71h
Mov es:[si+321],al
inc si
inc si
inc di
Loop s
mov ax,700h;按任意退出
int 21h
mov ax,4c00h
int 21h
code ends
end sta
也就是说一次写三行,一个循环就够了,大致就这样了
lzh22355495
[第3楼]   [ 回复时间:2011-08-08 14:20 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:2
注册日期:2010-09-17 02:05
这个xor 是什么指令额。。
chinatree
[第4楼]   [ 回复时间:2011-08-08 16:04 ]   [引用]   [回复]   [ top ] 
荣誉值:118
信誉值:0
注册日期:2011-07-07 22:59
异或呀,是一种运算操作符,按位来算的,如01101010^10100110=11001100,就是同为一或零为零,不相同为1
958201599
[第5楼]   [ 回复时间:2011-08-11 17:00 ]   [引用]   [回复]   [ top ] 
荣誉值:0
信誉值:0
注册日期:2011-07-25 15:04
这程序win7下能运行吗?win7dos下很多不能运行呢
chinatree
[第6楼]   [ 回复时间:2011-08-11 18:18 ]   [引用]   [回复]   [ top ] 
荣誉值:118
信誉值:0
注册日期:2011-07-07 22:59
不能,需要虚拟机
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved