汇编语言写个小程序,hello world!
求一个汇编程序,打印一句话“hello world!”,要求能在DOS上显示出来。还有就是link之后怎么操作才能显示
追问:这个程序在link之后该怎么做,才能显示出来,烦劳您详说一下
求一个汇编程序,打印一句话“hello world!”,要求能在DOS上显示出来。还有就是link之后怎么操作才能显示
追问:这个程序在link之后该怎么做,才能显示出来,烦劳您详说一下
答案:link之后,要求在屏幕上显示,直接输入该程序名字:"****.exe"+回车。比如说:d\masm>+名字+exe+回车。^_^
其他:程序如下:
ORG 0000H
LJMP START
ORG 0030H
START:
;-------------设置串行口
MOV SCON, #50H ;设定串行通信方式1,由T1控制波特率
MOV PCON, #00H ;设置SMOD=0
;-------------设置T1
MOV TMOD, #20H
MOV TH1, #0FDH ; 9600@11.0592MHz
MOV TH1, #0FDH
SETB TR1 ;启动T1,作为串行口的波特率发生器
MOV DPTR, #STR_TAB
MOV R2, #11 ;共发出11个字节
F_LOOP:
MOVC A, @DPTR
INC DPTR
MOV SBUF, A
JNB TI, $
CLR TI
DJNZ R2, F_LOOP
SJMP $
STR_TAB:
DB 'H','e','l','l','o',' ','w','o','r','l','d' data segment
;DATA HERE
String db 'Hello World!$'
data ends
stack segment stack
db 20 dup('STACK')
stack ends
;-------------------------------------------------
code segment
assume ds:data,es:data,ss:stack,cs:code
.586p
start:
mov ax, data
mov ds, ax
mov es, ax
;CODE HERE
mov dx, offset String
mov ah, 09h
int 21h
mov ax, 4c00h
int 21h
code ends
end start 什么汇编 X86 ? MASM ? 500元人民币,包会. assume cs:code,ds:data
data segment
db "hello world! "
data ends
stack segment
db 16 dup (0)
stack ends
code segment
start:mov ax,stack
mov ss,ax
mov sp,10h
mov ax,data
mov ds,ax
mov bx,0
mov cx,12
s: push [bx]
pop [bx]
inc bx
loop s
mov ax,4c00h
int 21h
code ends
end start
============================================================
link之后debug,t指令执行完毕后用d指令查看就能得出 (-d ds:0=====将你pc机中cs值输进去即可) 楼上明显是个新手,DOS显示出来,不应该这么写。。
理论都是对的,只不过,你得往显存中写入这些字符所对应的ASC码才能正常的显示。。
assume cs:code,ds:data
data segment
db "hello world! ",0
data ends
stack segment
db 16 dup (0)
stack ends
code segment
start:mov ax,stack
mov ss ,ax
mov sp,10h
mov ax,data
mov ds,ax
mov si,0
mov es,b800h
mov di,0
mov cx,10h
s: push cx
push si
push di
mov al,ds:[si]
mov es:[di],al
inc si
add di,2
loop s
pop di
pop si
pop cx
mov ax,4c00h
int 21h
code ends
end start
上一个:那位仁兄手里有汇编语言的基础教材啊,拜求!!!
下一个:关于汇编语言