. : : Assembly Language : : .  |  首页  |  我提出的问题  |  我参与的问题  |  我的收藏  |  消息中心   |  游客  登录  | 
刷新 | 提问 | 未解决 | 已解决 | 精华区 | 搜索 |
  《汇编语言》论坛 ->转移指令的原理
  管理员: assembly   [回复本贴] [收藏本贴] [管理本贴] [关闭窗口]
主题 : :  hello word 为什么不能显示啊?  [待解决] 回复[ 4次 ]   点击[ 223次 ]  
learningc
[帖 主]   [ 发表时间:2011-02-14 17:27 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2011-02-09 11:49
assume cs:code,ds:code
data segment
        db 'hello asm '
data ends
;
; 0b8000h - 0bffffh
code segment
        start:
        mov ax,data
        mov ds,ax
        mov cx,10
        mov bx,0
        mov ax,0b800h
        mov es,ax
        mov si,0
        s:
        mov al,ds:[bx]
        mov ah,2
        mov es:[si],ax
        inc bx
        add si,2
        loop s        
        mov ax,4c00h
        int 21h
code ends
end start
zaixuexi
[第1楼]   [ 回复时间:2011-02-14 23:55 ]   [引用]   [回复]   [ top ] 
荣誉值:93
信誉值:0
注册日期:2010-11-29 14:28
没什么问题,可以显示的,换台机器试下吧.
learningc
[第2楼]   [ 回复时间:2011-02-15 08:56 ]   [引用]   [回复]   [ top ] 
荣誉值:2
信誉值:0
注册日期:2011-02-09 11:49
换了机器还是不能显示啊?求解!!!
chinaljg
[第3楼]   [ 回复时间:2011-02-15 22:23 ]   [引用]   [回复]   [ top ] 
荣誉值:10
信誉值:0
注册日期:2011-01-04 11:04
确实能显示,但是:
1、assume cs:code,ds:code ;这儿有两个code?
2、 mov es:[si],ax ;ax中不仅包含有字符,改为:mov byte ptr es:[si],al 较好。
zaixuexi
[第4楼]   [ 回复时间:2011-02-16 09:55 ]   [引用]   [回复]   [ top ] 
荣誉值:93
信誉值:0
注册日期:2010-11-29 14:28
[回]3楼
-----------------
assume cs:code,ds:code 是可以的,不是有2个code,而是cs,ds也可以都声明为code,最终指向的地址还是看你后面代码的赋值
mov ax,data 
mov ds,ax 

mov es:[si],ax ;将字符属性一并写入,ah=属性,al=字符
写2句也可以的
mov byte ptr es:[si],al
mov byte ptr es:[si+1],ah
需要登录后才能回帖 -->> 请单击此处登录
    Copyright © 2006-2024   ASMEDU.NET  All Rights Reserved