好文档 - 专业文书写作范文服务资料分享网站

微机原理与汇编语言程序设计课后习题参考答案

天下 分享 时间: 加入收藏 我要投稿 点赞

页眉 写为: JMP DWORD PTR [BX]

5. 试编写一个程序,要求能从键盘接收一个不超过9的数N,然后输出N个B。 答:所求程序为: data segment

var1 db '请输入一个不超过9的数:$' data ends code segment

assume cs:code, ds:data start: mov ax, data mov ds, ax

mov dx, offset var1 mov ah, 9 int 21h mov ah, 1 int 21h cmp al, 31h jl lab2 cmp al, 39h jg lab2 and ax, 0fh mov cx, ax lab1: mov ah, 2 mov dl, 42h int 21h loop lab1 lab2: mov ah, 4ch int 21h code ends

end start

6. 设一台计算机CPU主频为80M,执行一条LOOP指令用两个时钟,请设计一个延时2秒的程序段。

答:设延时2秒需执行X条LOOP指令,则有:2X=80*1000000*2,X=80000000=8000*10000所求延时2秒的程序段为: mov di, 10000 lab1: mov cx, 8000 lab2: loop lab2 dec di jnz lab1

7. 设一台计算机CPU主频为400M,执行一条LOOP指令用两个时钟,试编写一个程序,要求能从键盘接收一个不超过9的数N,然后每隔0.5秒响铃一次,共响铃N次(响铃的ASCII码为07)。

答:7.设延时0.5秒需执行X条LOOP指令, 则有:2X=400*1000000*0.5,X=100000000=10000*10000,所求程序段为: data segment

26 / 44

页眉 var1 db '请输入一个不超过9的数:$' data ends code segment

assume cs:code, ds:data start: mov ax, data mov ds, ax

mov dx, offset var1 mov ah, 9 int 21h mov ah, 1 int 21h cmp al, 31h jl lab4 cmp al, 39h jg lab4 and ax, 0fh mov si, ax lab1: mov di, 10000 lab2: mov cx, 10000 lab3: loop lab3 dec di jnz lab2 mov ah, 2 mov dl, 7 int 21h dec si jnz lab1 lab4: mov ah, 4ch int 21h code ends

end start

8. 试编写一个程序,要求将键盘输入的一串小写英文字母用大写英文字母显示出来。当输入一个非英文小写字母时,结束工作。 答:所求程序为: data segment

var1 db '请输入一串小写英文字母(输入一个非英文小写字母时结束):$' data ends code segment

assume cs:code, ds:data start: mov ax, data mov ds, ax

mov dx, offset var1 mov ah, 9 int 21h

27 / 44

页眉 mov cx, 0 lab1: mov ah, 1 int 21h cmp al, 61h jl lab2 cmp al, 7ah jg lab2 sub al, 20h mov ah, 2 mov dl, al int 21h loop lab1 lab2: mov ah, 4ch int 21h code ends

end start

9. 试编写一个程序,要求从键盘输入一串字符(不超过50个,遇回车结束),然后,按与输入时相反的顺序显示出来(用两种不同的方法来编写)。 答:所求程序为: data segment

var1 db '请输入一串字符(不超过50个,遇回车结束):$' data ends

sta1 segment stack dw 50 dup (?) sta1 end code segment

assume cs:code, ds:data,ss:sta1 start: mov ax, data mov ds, ax

mov dx, offset var1 mov ah, 9 int 21h mov si,0 mov cx, 50 lab1: mov ah, 1 int 21h cmp al, 0dh jz lab2 push ax inc si loop lab1 lab2: mov cx, si lab3: pop bx mov dl, bl

28 / 44

页眉 mov ah, 2 int 21h loop lab3 mov ah, 4ch int 21h code ends

end start

10. 从键盘输入一系列字符(以回车符结束),并按字母、数字及其它字符分类计数,最后显示出这三类的计数结果。 答:所求程序为: data segment

var1 db '请输入一串字符(不超过50个,遇回车结束):$' alpha dw ? number dw ? other dw data ends code segment

assume cs:code, ds:data start: mov ax, data mov ds, ax

mov dx, offset var1 mov ah, 9 int 21h mov cx, 50 lOP1: mov ah, 1 int 21h cmp al, 0dh jz close cmp al, 30h jl lab4 cmp al, 39h Jg lab2 inc number jmp lab5 lab2: cmp al, 41h jl lab4 cmp al, 5ah jg lab3 inc alpha jmp lab5 lab3: cmp al, 61h jl lab4 cmp al, 7ah jg lab4

29 / 44

页眉 inc alpha jmp lab5 lab4: inc other lab5: loop lOP1 close: mov ah, 4ch int 21h code ends

end start

11. 设平面上有一点P的直角坐标(X,Y),试编制完成以下操作的程序: (1)如P点落在第i(i=1,2,3,4)象限,则将i送quadrant单元; (2)如P点落在坐标轴上,则将0送quadrant单元。 答:所求程序为: data segment X dw -45 Y dw 82

quadrant dw ? data ends code segment

assume cs:code, ds:data start: mov ax, data mov ds, ax xor ax, ax cmp ax, x jz axis cmp ax, y jz axis cmp x, ax jl qua2_3 cmp y, ax jl qua4

mov quadrant, 1 jmp close

qua4: mov quadrant, 4 jmp close qua2_3: cmp y, ax jl qua3

mov quadrant, 2 jmp close

qua3: mov quadrant, 3 jmp close

axis: mov quadrant, 0 close: mov ah, 4ch int 21h code ends

30 / 44

微机原理与汇编语言程序设计课后习题参考答案

页眉写为:JMPDWORDPTR[BX]5.试编写一个程序,要求能从键盘接收一个不超过9的数N,然后输出N个B。答:所求程序为:datasegmentvar1db'请输入一个不超过9的数:$'dataendscodesegmentassu
推荐度:
点击下载文档文档为doc格式
1vk1h8h6wh77xpo5846y5ap1c1kzfj00qe2
领取福利

微信扫码领取福利

微信扫码分享