wql老大,请进来拿分,另外,还有一个问题就有劳您啦。(300分)

  • 主题发起人 主题发起人 FLY_IN_SKY
  • 开始时间 开始时间
F

FLY_IN_SKY

Unregistered / Unconfirmed
GUEST, unregistred user!
先谢谢wql老大上次那个问题的帮助,送上200分(和那道题的100分加起来共300分)。
再加100分,希望老大能救我,调试的环境和上次那道题一样,题目如下,随便哪道您看作起来
方便就作哪道。(本来想加多点分,可是只能出300分,问题解决啦,我再给你加300分吧)

试编制一程序,完成在数据区内可任选产生下列两种数据排列之一:
第一种排列:DB'0','A','1','B','2','C',....'9','J'
第二种排列:DB'A','0','B','1','C','2',....'J','9'
并显示排列结果。产生哪种数据排列,由键盘输入1或2来确定。

还有一道题跟上面那道题任选一道
在数据段中有一九九乘法表(TAB1~TAB9),乘数和被乘数分别在MUL1和MUL2的字节单元中。
试编程用查表法求出(MUL1)*(MUL2)的乘积。数据段如下:
DATA SEGMENT
TAB1 DB 1,2,3,4,5,6,7,8,9
TAB2 DB 2,4,6,8,10,12,14,16,18
TAB3 DB 3,6,9,12,15,18,21,24,27
TAB4 DB 4,8,12,16,20,24,28,32,36
TAB5 DB 5,10,15,20,25,30,35,40,45
TAB6 DB 6,12,18,24,30,36,42,48,54
TAB7 DB 7,14,21,28,35,42,49,56,63
TAB8 DB 8,16,24,32,40,48,56,64,72
TAB9 DB 9,18,27,36,45,54,63,72,81
MUL1 DB 3 ;一位乘数
MUL2 DB 6 ;一位被乘数
PROD DB 0 ;存放乘积
DATA ENDS


时间紧急,希望能够明天写出来,好嘛?谢谢!!!!!
 
; 哈! 可以拿新的300分来了。
; 调试过了!!!

Code Segment
Assume Cs:Code,Ds:Code
Start Proc Far
Push Cs
Pop Ds

显示提示1:
LEA Dx,TS1
Mov Ah,9
Int 21h

按键:
@@11:
Mov Ah,0
Int 16h
Cmp Al,0
Jz @@11 屏蔽扩展键
Push Ax
Mov Ah,0Eh
Int 10h
Pop Ax
Sub Al,30h
Dec Al
Mov _Mark,Al

开始得到系列
Call GetSer

显示系列
Call ShowXL

显示结束
LEA Dx,TS3
Mov Ah,9
Int 21h

结束
Mov Ax,4C00h
Int 21h
Start EndP

GetSer Proc Near
; 开始得到系列
; AL=0, 方式1
; AL=1, 方式2
Push Cs
Pop Ds

初始化:
LEA DI,_XL
Push Ax
Mov Al,' '
Mov Cx,_XLAll
CLD
Repz Stosb
Pop Ax

Mov Dh,'0'
Sub Dh,Al

Mov Dl,'A'
Mov Cx,_XLNum
Xor Ah,Ah
Add Cx,Ax
LEA Bx,_XL
@@21:
Mov [Bx+0],Dh
Mov [Bx+1],Dl
Inc Dh
Inc Dl
Add Bx,2
Loop @@21

LEA Bx,_XL
Cmp Al,1
Jnz @@23
Mov Al,' '
Mov [Bx+0],Al

@@23:
Ret
GetSer EndP

ShowXL Proc Near
; 显示系列
Push Cs
Pop Ds

显示提示2:
LEA Dx,TS2
Mov Ah,9
Int 21h

LEA SI,_XL
Mov Cx,_XLALL-1
Cmp Byte Ptr _Mark,0
Jnz @@31
Dec SI

@@31:
Inc SI

@@33:
显示一个字符
Mov Ah,0EH
Mov Al,[SI]
Int 10h

显示",",但不显示最后的","
Cmp Cx,1
Jz @@35
Mov Ah,0EH
Mov Al,','
Int 10h

@@35:
Inc SI
Loop @@33
Ret
ShowXL EndP

TS1 Db 13,10,'Select Display mode [1,2]: $'
TS2 Db 13,10,13,10,'$'
TS3 Db 13,10,13,10,'Ok !!!',13,10,'$'
_Mark Db 0

_XLNum EQU 10
_XLAll EQU _XLNum*2+1
_XL Db _XLALL Dup('?')
Code EndS
End Start
 
万分感谢,你真是我的救星啊!

http://www.delphibbs.com/delphibbs/dispq.asp?lid=548502
http://www.delphibbs.com/delphibbs/dispq.asp?lid=548512
请到这两贴拿分。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
693
import
I
后退
顶部