汇编问题求解!!!
答案:4 悬赏:50 手机版
解决时间 2021-04-22 22:01
- 提问者网友:孤凫
- 2021-04-21 22:41
要求用8086汇编语言求解:输入一个不大于9的数字N,输出N个B!!各位大虾帮忙了^
最佳答案
- 五星知识达人网友:摆渡翁
- 2021-04-21 23:44
assume cs:code,ds:data
data segment
n db ?
data ends
code segment
start:
mov ax,data
mov ds,ax
mov ah,1
int 21h
mov n,al
sub n,'0'
cmp n,9
ja lab
mov ch,0
mov cl,n
mov dl,0ah
mov ah,2
int 21h
mov dl,0dh
mov ah,2
int 21h
lop:
mov dl,'B'
mov ah,2
int 21h
loop lop
lab:
mov ah,4ch
int 21h
code ends
end start
data segment
n db ?
data ends
code segment
start:
mov ax,data
mov ds,ax
mov ah,1
int 21h
mov n,al
sub n,'0'
cmp n,9
ja lab
mov ch,0
mov cl,n
mov dl,0ah
mov ah,2
int 21h
mov dl,0dh
mov ah,2
int 21h
lop:
mov dl,'B'
mov ah,2
int 21h
loop lop
lab:
mov ah,4ch
int 21h
code ends
end start
全部回答
- 1楼网友:末日狂欢
- 2021-04-22 02:51
data segment n db ? ;定义一个字节变量 data ends code segment
assume cs:code,ds:data start:mov ax,data mov ds,ax mov ah,1 ;读取用户输入的一个字符 int 21h mov n,al sub n,'0' ;将字符转化为数值 cmp n,9 ja lab ;如果n的值大于9,跳转到程序尾,结束程序 mov ch,0 ;给cx赋值,存储重复执行的次数 mov cl,n mov dl,0ah ;打印回车换行符 mov ah,2 int 21h mov dl,0dh mov ah,2 int 21h
lop: mov dl,'B' ;每次打印一个字符'B' mov ah,2 int 21h loop lop lab: mov ah,4ch ;结束程序 int 21h code ends end start
- 2楼网友:举杯邀酒敬孤独
- 2021-04-22 01:55
assume cs:code
code segment
start:
mov ah, 1 ;1号功能调用从键盘接受一个输入
int 21h
sub al, '0' ;减去'0'得到对应的数字表示
mov cl, al ;cl=循环次数
mov ah, 2 ;准备2号功能调用
mov dl, 'B' ;dl=待输出的字符
next:
int 21h ;2号功能调用输出dl里的字符
loop next ;循环直至cl=0
mov ax, 4c00h ;程序结束
int 21h
code ends
end start
- 3楼网友:鸽屿
- 2021-04-22 01:01
楼上回答已经比较完整啦,而且这种段定义格式比较适合初学者使用哩
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯