首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 嵌入开发 > 汇编语言 >

王爽汇编实验九疑问

2012-08-21 
王爽汇编实验9疑问在屏幕以不同样式显示“welcome to masm!”这个字符串程序如下:Assembly codeassume cs:co

王爽汇编实验9疑问
在屏幕以不同样式显示“welcome to masm!”这个字符串
程序如下:

Assembly code
assume cs:code,ds:datadata segment  db 'welcome to masm!'data endscode segmentstart:mov ax,data      mov ds,ax      mov ax,0b800h       mov es,ax     ;取得80X25显示缓冲区的段地址                  mov bp,0      mov si,0      mov cx,16   s3:mov al,[bp]   ;得到字符数据      mov ah,2h     ;得到样式      mov es:0910h[si],ax  ;将其送入相应的显示缓冲区中      mov al,[bp]   ;得到字符数据      mov ah,24h     ;得到样式      mov es:7d0h[si],ax  ;将其送入相应的显示缓冲区中      add si,2      inc bp      loop s3code ends end start

为什么“W”就是显示不出来呢?

[解决办法]
assume cs:code,ds:data,ss:stack
data segment
db 'welcome to masm!'
db 02h,24h,71h
data ends
stack segment
dw 8 dup(0)
stack ends
code segment
start:
mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
mov sp,10h
mov bx,0
mov di,0
mov ax,0b872h
mov cx,3
s3: push cx
push ax
mov es,ax
mov si,0
mov di,0
mov cx,10h
s1: mov al,ds:[bx+si]
mov es:[bx+di],al
inc si
add di,2
loop s1
mov si,1
pop di
mov al,ds:10h[bx+di]
mov cx,10h
s2: mov es:[bx+si],al
add si,2
loop s2
inc di
pop ax
add ax,0ah
pop cx
loop s3
mov ax,4c00h
int 21h
code ends
end start


[解决办法]
Assembly code
assume cs:code,ds:data;,ss:ssegdata segmentmy_msg  db 'welcome to masm!'data endssseg segment stack      db 100h dup(?)sseg endscode segment 'code'start:mov ax,data      mov ds,ax      mov ax,02h      int 10h      mov ax,0b800h       mov es,ax     ;取得80X25显示缓冲区的段地址;      mov bp,0      lea bp,my_msg      mov si,0      mov cx,16   s3:mov al,ds:[bp]   ;得到字符数据      mov ah,2h     ;得到样式      mov es:0910h[si],ax  ;将其送入相应的显示缓冲区中      mov al,ds:[bp]   ;得到字符数据      mov ah,24h     ;得到样式      mov es:7d0h[si],ax  ;将其送入相应的显示缓冲区中      add si,2      inc bp      loop s3      mov ah,0      int 16h      mov ah,4ch      int 21hcode ends end start 

热点排行