- [游客] 求3号,不是1号。 10/25 19:27
- [towersimper] 这就看是CS:IP指向的还是DS:偏移地址指向,若是前者是指令,若是后者是数据。即指令和数据都是二进 10/22 16:57
- [游客] 问一下,我们如何判断e写入的是数据还是指令呢? 10/03 22:43
- [chendeke060482] 告诉大家一个秘密。用我博客里介绍的win-masm v2.2软件,然后用二进制软件打开安装目录下的m 08/05 22:49
- [zkry04] 真的是好东西,及时雨,这几天就是被这些错误困扰,头都搞大了。。。感谢楼主提供这么好的东西。收藏了!! 08/04 20:04
- [masmaster] 嘿嘿~~↖(^ω^)↗ 07/27 16:16
- [towersimper] 呵呵。我当然知道此处程序只能处理65536以下的整数啊。只是姑且按照书上说的那样啊。在第十章设计点中 07/27 15:07
- [masmaster] 找个32位大数测试了吗?例如:ffffffffh 07/27 14:51
- [towersimper] 好的,我试试。谢谢啊。呵呵 07/26 22:08
- [masmaster] 装个VM,试一试呢? 07/24 23:27
[2010-09-26 00:01] 实验13.3
(3)下面的程序,分别在屏幕的第2、4、6、8行显示四句英文诗,补全程序。
依次填写
[si]
[bx]
inc si
add bx,2
将字符串的偏移地址,行数,与相应字符串作为数据段存储在data数据段中,当将字符串输出到显示缓冲区上,先是设置字符串在显示缓冲区上的位置,调用int 10的2号子程序实现,而要在指定位置上输出字符串,则调用int 21h的9号子程序实现。
完整程序为:
assume cs:code
code segment
s1: db 'Good,better,best,','$'
s2: db 'Never let it rest,','$'
s3: db 'Till good is better,','$'
s4: db 'And better,best.','$'
s: dw offset s1,offset s2,offset s3,offset s4
row: db 2,4,6,8
start: mov ax,cs
mov ds,ax
mov bx,offset s
mov si,offset row
mov cx,4
ok: mov bh,0
mov dh,[si] ;[si]为所填内容
mov dl,0
mov ah,2
int 10h
mov dx,[bx] ;[bx]为所填内容
mov ah,9
int 21h
add bx,2
inc si ;此条指令为所填内容
loop ok ;此条指令为所填内容
mov ax,4c00h
int 21h
code ends
end start
运行结果如图所示。
依次填写
[si]
[bx]
inc si
add bx,2
将字符串的偏移地址,行数,与相应字符串作为数据段存储在data数据段中,当将字符串输出到显示缓冲区上,先是设置字符串在显示缓冲区上的位置,调用int 10的2号子程序实现,而要在指定位置上输出字符串,则调用int 21h的9号子程序实现。
完整程序为:
assume cs:code
code segment
s1: db 'Good,better,best,','$'
s2: db 'Never let it rest,','$'
s3: db 'Till good is better,','$'
s4: db 'And better,best.','$'
s: dw offset s1,offset s2,offset s3,offset s4
row: db 2,4,6,8
start: mov ax,cs
mov ds,ax
mov bx,offset s
mov si,offset row
mov cx,4
ok: mov bh,0
mov dh,[si] ;[si]为所填内容
mov dl,0
mov ah,2
int 10h
mov dx,[bx] ;[bx]为所填内容
mov ah,9
int 21h
add bx,2
inc si ;此条指令为所填内容
loop ok ;此条指令为所填内容
mov ax,4c00h
int 21h
code ends
end start
运行结果如图所示。
评论次数(0) |
浏览次数(706) |
类型(汇编作业) |
收藏此文 |