楼主,你问的简单,“就编写一个这样的程序”,这个程序拿C语言编肯定非常简单,拿汇编可没那么容易啊。
以下是程序,简单说明几点:
1 由于输入、输出的都是字符,所以用了两个函数。Atoi16是把输入的字符转为正整数,I16toa 是把整数转成字符串。
2 调用Atoi16时,要配好si和cl两个寄存器。si为转换字符串的起始地址,cl为转换结束字符。例如输入两个数字,回车结束输入,而两个数字之间以空格分隔,比如1234 5678,那么第一次si指向1,cl为空格;第二次si指向5,cl为回车符,每次的转换结果以ax返回。
3 调用I16toa函数时,把要转换的整数放到ax里,si指向存储转换结果的字符串起始位置。
4 输入数字最好不要超过10000。当然超过10000也可以,比如输入 3456 2345,只要别让最终的计算结果超过65535就没问题。
5 第一个大于val1又能整除val2的数为:((val1 / val2) + 1) val2
dseg segment
LF equ 0ah
msg db 'Please input two numbers', 0ah, 0dh, '$'
bufin db 20, 20 dup()
bufout db 10 dup()
val1 dw
val2 dw
dseg ends
cseg1 segment
assume cs:cseg1, ds:dseg
START:
mov ax, dseg
mov ds, ax
lea dx, msg
mov ah, 9
int 21h
lea dx, bufin
mov ah, 0ah
int 21h
mov dl, LF
mov ah, 2
int 21h
lea si, bufin + 2
mov cl, ' '
call Atoi16
mov val1, ax
inc si
mov cl, 0dh
call Atoi16
mov val2, ax
mov ax, val1
xor dx, dx
mov bx, val2
div bx
inc ax
mul bx
lea si, bufout
call I16toa
lea dx, bufout
mov ah, 9
int 21h
mov ah, 04ch
int 21h
cseg1 ends
cseg2 segment
assume cs:cseg2
Atoi16 proc far
xor ax, ax
xor bx, bx
Convert:
mov bl, [si]
mov dx, 10
mul dx
and bx, 0fh
add ax, bx
inc si
mov bl, [ si ]
cmp bl, cl
jne Convert
ret
Atoi16 endp
I16toa proc far
push ax
push bx
push cx
push dx
push si
mov bx, 10
xor cx, cx
next:
xor dx, dx
div bx
or dl, 30h
push dx
inc cx
cmp ax, 0
jnz Next
Store:
pop dx
mov [ si ], dl
inc si
loop Store
mov byte ptr[ si ], '$'
pop si
pop dx
pop cx
pop bx
pop ax
ret
I16toa endp
cseg2 ends
end START
返回包含于字符串内的数字,字符串中是一个适当类型的数值。
语法
Val(string)
必要的
string
参数可以是任何有效的字符串表达式
说明
Val
函数,在它不能识别为数字的第一个字符上,停止读入字符串。那些被认为是数值的一部分的符号和字符,例如美圆号与逗号,都不能被识别。但是函数可以识别进位制符号
&O(八进制)和
&H(十六进制)。空白、制表符和换行符都从参数中被去掉。
下面的返回值为
1615198:
Val("
1615
198th
Street
NE")
在下面的代码中,Val
为所示的十六进制数值返回十进制数值
-1。
Val("&HFFFF")
注意
Val
函数只会将句点()当成一个可用的小数点分隔符。当使用不同的小数点分隔符时,如在国际版应用程序中,代之以
CDbl
来把字符串转换为数字。
Val
函数示例
本示例使用
Val
函数返回字符串中所含的数值。
Dim
MyValue
MyValue
=
Val("2457")
'
返回
2457。
MyValue
=
Val("
2
45
7")
'
返回
2457。
MyValue
=
Val("24
and
57")
'
返回
24。
以上就是关于用汇编语言编写:由键盘输入两个整数val1和val2,输出稍大于val1且是val2整数倍的数 就编写一个这样的程序全部的内容,包括:用汇编语言编写:由键盘输入两个整数val1和val2,输出稍大于val1且是val2整数倍的数 就编写一个这样的程序、在vb语言中val代表啥意思,懂VB的高手请进.、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)