![]() |
#2
zklhp2013-02-21 20:30
以下是引用神龙赖了在2013-2-21 20:00:43的发言: 国产汇编IDE MASMPlus http://www.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 si ;si记录字符串读取地址 mov si,0 push dx ;dh记录行地址 ;dl记录列数地址 push cx ;ch记录读取字符 push ax ;al记录字符属性 mov al,cl mov cl,0 print: mov ch,ds:[si] ;如果ch为0,则跳出循环 jcxz out mov byte ptr 0b800h:[dh][dl],ds:[si] inc si mov 0b800h:[dh][dl].1,al add dl,2 jmp short print out: pop ax pop cx pop dx pop si ret code ends end start 如能改正错误分全部奉上,顺便问一下什么汇编编辑器最适于编写,我用的Masm for Windows 集成实验环境 2012.5结果发现版权比windows都封闭的十来倍,连错误中的英文都说要注册账户才能进行翻译,版面也稍有麻烦,qq1085250220如果有的话希望能发给我一个较实用的编辑器,一个问题50分,正好发发福利... 只有本站会员才能查看附件,请 登录 再传一份到论坛罢 |

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 si ;si记录字符串读取地址
mov si,0
push dx ;dh记录行地址
;dl记录列数地址
push cx ;ch记录读取字符
push ax ;al记录字符属性
mov al,cl
mov cl,0
print: mov ch,ds:[si] ;如果ch为0,则跳出循环
jcxz out
mov byte ptr 0b800h:[dh][dl],ds:[si]
inc si
mov 0b800h:[dh][dl].1,al
add dl,2
jmp short print
out: pop ax
pop cx
pop dx
pop si
ret
code ends
end start
如能改正错误分全部奉上,顺便问一下什么汇编编辑器最适于编写,我用的Masm for Windows 集成实验环境 2012.5结果发现版权比windows都封闭的十来倍,连错误中的英文都说要注册账户才能进行翻译,版面也稍有麻烦,qq1085250220如果有的话希望能发给我一个较实用的编辑器,一个问题50分,正好发发福利... 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 si ;si记录字符串读取地址
mov si,0
push dx ;dh记录行地址
;dl记录列数地址
push cx ;ch记录读取字符
push ax ;al记录字符属性
mov al,cl
mov cl,0
print: mov ch,ds:[si] ;如果ch为0,则跳出循环
jcxz out
mov byte ptr 0b800h:[dh][dl],ds:[si]
inc si
mov 0b800h:[dh][dl].1,al
add dl,2
jmp short print
out: pop ax
pop cx
pop dx
pop si
ret
code ends
end start