在内存中的显示缓存区中显示汉字”中国山西“(二)
2012-12-15 17:02
253 查看
汇编语言源代码:
assume cs:code,ds:data
data segment
DB 080H, 001H, 080H, 001H, 080H, 001H, 0FCH, 03FH, 0FCH, 03FH, 08CH, 031H, 08CH, 031H, 08CH, 031H
DB 0FCH, 03FH, 0FCH, 03FH, 08CH, 031H, 080H, 001H, 080H, 001H, 080H, 001H, 080H, 001H, 000H, 000H;中
DB 000H, 000H, 0FEH, 03FH, 0FEH, 03FH, 006H, 030H, 0F6H, 037H, 0F6H, 037H, 086H, 031H, 0F6H, 037H
DB 086H, 031H, 086H, 035H, 0F6H, 03FH, 0F6H, 03FH, 006H, 030H, 0FEH, 03FH, 0FEH, 03FH, 000H, 000H;国
DB 0C0H, 000H, 0C0H, 000H, 0C0H, 000H, 0C0H, 000H, 0C6H, 030H, 0C6H, 030H, 0C6H, 030H, 0C6H, 030H
DB 0C6H, 030H, 0C6H, 030H, 0C6H, 030H, 0C6H, 030H, 0FEH, 03FH, 0FEH, 03FH, 000H, 030H, 000H, 000H;山
DB 000H, 000H, 0FFH, 07FH, 0FFH, 07FH, 060H, 003H, 060H, 003H, 0FEH, 03FH, 0FEH, 03FH, 066H, 033H
DB 066H, 033H, 036H, 03FH, 01EH, 03EH, 006H, 030H, 0FEH, 03FH, 0FEH, 03FH, 006H, 030H, 000H, 000H;西
DB 1H,2H,4H,8H,10H,20H,40H,80H ;用于过滤 01 10 100 1000 10000 100000 1000000 10000000
data ends
code segment
start:
;先进行初始化
mov ax,data
mov ds,ax
mov ax,0b800h
mov es,ax
mov si,0
mov di,0500h;从第0页第8行开始
mov cx,4;四个汉字循环四次
chinese:push cx
push si
push di
;对每个汉字进行操作,每个汉字需要处理16行,每行一个字,每个字两个字节,每个字节8个位,每个位and处理
mov cx,16
show:push cx
mov cx,2
showWord:push cx
mov bx,80h
mov cx,8
showByte:push cx
mov ah,[si]
mov dl,ah
mov ah,[bx]
mov dh,ah
and dl,dh
mov cx,0
mov cl,dl
jcxz a
mov byte ptr es:[di],2ah
inc di
mov byte ptr es:[di],14h
inc di
jmp b
a:mov byte ptr es:[di],20h
inc di
mov byte ptr es:[di],20h
inc di
jmp b
b:inc bx
pop cx
loop showByte
inc si
pop cx
loop showWord
add di,80h
pop cx
loop show
pop di
pop si
add si,32 ;进入第二个汉字
add di,32 ;进入第二个汉字的第一行
pop cx
loop chinese
mov ax,4c00h
int 21h
code ends
end start
用汇编语言显示“中”
首先用masm编译该源代码,生成.obj文件;
再用link链接该文件生成的.obj文件,生成.exe文件
再用debug命令运行该.exe文件,执行g命令,就显示如图所示的“中国山西“
注意:如果在masm过程中出现out
of memory;可能是因为源程序中的逗号或分号处于中文状态下,改成英文状态,该错误就会消失。
这是本人最近写的小的汇编程序,欢迎大家批评指正。
assume cs:code,ds:data
data segment
DB 080H, 001H, 080H, 001H, 080H, 001H, 0FCH, 03FH, 0FCH, 03FH, 08CH, 031H, 08CH, 031H, 08CH, 031H
DB 0FCH, 03FH, 0FCH, 03FH, 08CH, 031H, 080H, 001H, 080H, 001H, 080H, 001H, 080H, 001H, 000H, 000H;中
DB 000H, 000H, 0FEH, 03FH, 0FEH, 03FH, 006H, 030H, 0F6H, 037H, 0F6H, 037H, 086H, 031H, 0F6H, 037H
DB 086H, 031H, 086H, 035H, 0F6H, 03FH, 0F6H, 03FH, 006H, 030H, 0FEH, 03FH, 0FEH, 03FH, 000H, 000H;国
DB 0C0H, 000H, 0C0H, 000H, 0C0H, 000H, 0C0H, 000H, 0C6H, 030H, 0C6H, 030H, 0C6H, 030H, 0C6H, 030H
DB 0C6H, 030H, 0C6H, 030H, 0C6H, 030H, 0C6H, 030H, 0FEH, 03FH, 0FEH, 03FH, 000H, 030H, 000H, 000H;山
DB 000H, 000H, 0FFH, 07FH, 0FFH, 07FH, 060H, 003H, 060H, 003H, 0FEH, 03FH, 0FEH, 03FH, 066H, 033H
DB 066H, 033H, 036H, 03FH, 01EH, 03EH, 006H, 030H, 0FEH, 03FH, 0FEH, 03FH, 006H, 030H, 000H, 000H;西
DB 1H,2H,4H,8H,10H,20H,40H,80H ;用于过滤 01 10 100 1000 10000 100000 1000000 10000000
data ends
code segment
start:
;先进行初始化
mov ax,data
mov ds,ax
mov ax,0b800h
mov es,ax
mov si,0
mov di,0500h;从第0页第8行开始
mov cx,4;四个汉字循环四次
chinese:push cx
push si
push di
;对每个汉字进行操作,每个汉字需要处理16行,每行一个字,每个字两个字节,每个字节8个位,每个位and处理
mov cx,16
show:push cx
mov cx,2
showWord:push cx
mov bx,80h
mov cx,8
showByte:push cx
mov ah,[si]
mov dl,ah
mov ah,[bx]
mov dh,ah
and dl,dh
mov cx,0
mov cl,dl
jcxz a
mov byte ptr es:[di],2ah
inc di
mov byte ptr es:[di],14h
inc di
jmp b
a:mov byte ptr es:[di],20h
inc di
mov byte ptr es:[di],20h
inc di
jmp b
b:inc bx
pop cx
loop showByte
inc si
pop cx
loop showWord
add di,80h
pop cx
loop show
pop di
pop si
add si,32 ;进入第二个汉字
add di,32 ;进入第二个汉字的第一行
pop cx
loop chinese
mov ax,4c00h
int 21h
code ends
end start
用汇编语言显示“中”
首先用masm编译该源代码,生成.obj文件;
再用link链接该文件生成的.obj文件,生成.exe文件
再用debug命令运行该.exe文件,执行g命令,就显示如图所示的“中国山西“
注意:如果在masm过程中出现out
of memory;可能是因为源程序中的逗号或分号处于中文状态下,改成英文状态,该错误就会消失。
这是本人最近写的小的汇编程序,欢迎大家批评指正。
相关文章推荐
- 在内存中的显示缓存区中显示汉字“中”字(一)
- 在内存中的显示缓存区中显示移动的汉字”中“字
- Android listview异步加载图片(线程池,内存缓存,SD卡缓存)优化显示
- BitMap高效显示策略(三):使用内存缓存技术和BitmapFactory.Options.inBitmap参数
- [Android]异步加载图片,内存缓存,文件缓存,imageview显示图片时增加淡入淡出动画
- 高效显示Bitmap+listview冲突解决+图片内存缓存+硬盘缓存
- Android:ListView异步加载图片(实现网络下载、存储本地、缓存内存、压缩显示)
- [Android]异步加载图片,内存缓存,文件缓存,imageview显示图片时增加淡入淡出动画
- Android Training - 高效地显示Bitmap(两种缓存Bitmap的方式)与优化Bitmap的内存使用
- 利用扩展内存快速显示汉字
- IOS使用scrollview显示大量图片,实现缓存,节省内存
- 异步图片加载、内存、磁盘缓存
- Android RxJava 实战系列:从磁盘 / 内存缓存中 获取缓存数据
- 中国常用汉字 unicode码表
- thrift之TTransport层的内存缓存传输类TMemoryBuffer
- PHP内存缓存技术memcached详解
- ajax下载smartupload的内容无法显示汉字的解决方法
- 缓存逻辑---Allocations定位内存常驻时不要踩的坑
- 工作于内存和文件之间的页缓存, Page Cache, the Affair Between Memory and Files
- 格式化字符串长度,超出部分显示省略号,区分汉字跟字母