第十三章实验13(3)
2009-09-11 09:33
113 查看
题目:下面的程序,分别在屏幕上的第2、4、6、8行显示4句英文诗,补全程序。
分析:在(1)处很显然的是要拿到行号,因为dh和dl中存放的分别是行号和列号,关键就是如何拿到行号?由上面的程序知道行号是定义在了row中的,然后把row的位移给了si,所以可以通过ds:[si]拿到行号送给dh。对于(2)来说,首先要清楚一点ds:dx是指向要显示的字符串的首地址,所以dx处肯定是把要显示的字符串的首地址给dx。而我们已经知道bx中存放着各个要显示字符串的首地址,所以通过ds:[bx]获取各个字符串的首地址,把ds:[bx]的值给dx。(3)和(4)很显然的是把si和bx增加相应的值以便于下一次循环的正常运行。
补充后的代码如下:
assume cs:codesg codesg 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,offsest 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,__(1)_____ mov dl,0 mov ah,2 int 10h mov dx,___(2)____ mov ah,9 int 21h ___(3)____ ___(4)____ loop ok mov ax,4c00h int 21h codesg ends end start
分析:在(1)处很显然的是要拿到行号,因为dh和dl中存放的分别是行号和列号,关键就是如何拿到行号?由上面的程序知道行号是定义在了row中的,然后把row的位移给了si,所以可以通过ds:[si]拿到行号送给dh。对于(2)来说,首先要清楚一点ds:dx是指向要显示的字符串的首地址,所以dx处肯定是把要显示的字符串的首地址给dx。而我们已经知道bx中存放着各个要显示字符串的首地址,所以通过ds:[bx]获取各个字符串的首地址,把ds:[bx]的值给dx。(3)和(4)很显然的是把si和bx增加相应的值以便于下一次循环的正常运行。
补充后的代码如下:
assume cs:codesg codesg 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,offsest 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,ds:[si] mov dl,0 mov ah,2 int 10h mov dx,ds:[bx] mov ah,9 int 21h add bx,2 inc si loop ok mov ax,4c00h int 21h codesg ends end start
相关文章推荐
- 软工导论 12-13-2 实验报告一
- 操作系统大型实验进展(13)-----bieset
- 数字图像处理实验(13):PROJECT 05-04,Parametric Wiener Filter 标签: 图像处理MATLAB 2017-05-27 10:59
- 软工导论 12-13-2 实验前提条件
- S02_CH13_ AXI_PWM 实验
- 实验报告 13--1
- 实验13——结构体、文件的基本应用
- STM32单片机学习(13) I2C读写AT24Cxx存储器实验
- oracle: ocp题解与实验(12 & 13/205)
- 王爽 汇编 实验13:编写、应用中断进程
- 13计本2班第一次实验解析
- TQ2440 学习笔记—— 13、GPIO 接口【实验:用汇编语言实现】
- 软工12-13-2 实验报告三——住房贷款计算器所涉及到的数据及计算方法
- CCNP路由实验---13、基于帧中继环境下的OSPF实验之全互联广播
- 实验16-13 请在testdb中:查找在1996年10月中有销售记录的客户
- 数字图像处理实验(13):PROJECT 05-04,Parametric Wiener Filter
- Packet Tracer 5.0建构CCNA实验攻略(13)――帧中继Frame Relay
- 软工导论 12-13-2 实验前提条件
- C#--第2周实验--任务13--创建一个抽象类A,创建一个子类B,在B中重写求和方法,且使用方法重载使得方法可以分别计算整数、双精度、字符串。
- PAT《数据结构学习与实验指导》实验项目集 2-09 2-10 2-11 2-12 2-13