注册 登录
编程论坛 汇编论坛

[求助]汇编一道题

yzwsd1026 发布于 2007-06-06 22:06, 1154 次点击
从键盘上输入0~7之间的一个十进制数字(假设为N)要求在屏幕的下一行显示2的N次方的值,例如:键入3时,屏幕输出为8



那位大哥帮忙做一下!!!!!
12 回复
#2
曾小2007-06-07 11:23

以前做过一个2的11次方的,你试着去改改,加上输入输出语句.
dseg segment
array dw 1,2,4,8,16,32,64,128,256
dw 512,1024,2048,4096,8192,16384
x db 11
pwr dw ?
dseg ends
cseg segment
assume ds:dseg,cs:cseg
start:
mov ax,dseg
mov ds,ax
mov si,offset array

mov bh,0

mov bl,x
shl bx,1

mov ax,array[bx]
mov pwr,ax
mov ah,4ch
int 21h
cseg ends
end start

#3
yzwsd10262007-06-07 18:25

不会改啊,那位大哥帮忙做一下,急!!!!!!!!!!!!!跪求~~~~~~

#4
yzwsd10262007-06-07 18:41
楼上的大哥帮忙改改好不好??很急!!!!!初学不会啊!
#5
曾小2007-06-07 19:30

不是大哥!
呵呵

#6
魔城侠客2007-06-07 19:55

data segment
print db 'please input a number from 1-7:$'
data ends
stack segment para stack 'stack'
sta db 20 dup(?)
stack ends
code segment
assume cs:code,ds:data,ss:stack
start: mov ax,data
mov ds,ax
mov ax,stack
mov ss,ax
lea dx,print
mov ah,9
int 21h

mov ah,1
int 21h ;输出一个字符给AL
sub al,30h
mov cl,al
mov ch,0
mov ax,2
mov bx,2
sub cx,1
jz lop1 ;判断输入的是否是1,是1则直接转lop1

lop: mul bx
loop lop

mov cx,0
lop1: mov bx,10 ;将数值转换成ASCII码
mov dx,0
div bx
add dx,30h
push dx
inc cx
and ax,0fffh
jnz lop1
mov dl,0ah
mov ah,2
int 21h

lop2: pop dx ;输出字符
mov ah,2
int 21h
loop lop2
mov ah,4ch
int 21h
code ends
end start

#7
yzwsd10262007-06-07 20:24

万分感谢啊!!!!!!!!恩人啊!!!!

#8
yzwsd10262007-06-07 20:53

大哥啊,这是到九的啊.输 8,输9都能出结果啊

#9
爱以走远2007-06-07 21:46

有女的
来看看
这个其实也简单嘛 其实lz可以自己想想
输入多少 你乘二乘几次就是拉 一个循环
在输出数的时候 要先把数分开 先输出高位 在输出低位

#10
yzwsd10262007-06-07 21:59

是汇编盲!!!!主要是要交了,实在没办法,刚才是位姐姐

#11
爱以走远2007-06-08 13:49
曾小  是女滴吗  
#12
魔城侠客2007-06-10 14:15
她好像是女的
不过偶是男滴
#13
曾小2007-06-14 08:13
我是女滴!哈哈......
1