第三章 8088汇编语言程序设计 微机原理 第2版 课后答案(4)

2019-06-05 15:16

DATA SEGMENT ORG 1000H DATA1 DB 1,2,3,??,50 DUP(?) DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA,ES:DATA START: MOV AX,DATA MOV DS,AX MOV ES,AX MOV CX,100 LEA SI,DATA1+99 LEA DI,DATA+149 STD REP MOVSB MOV AH,4CH INT 21H CODE ENDS END START

9. 解:源程序如下:

data segment

org 0500H buffer1 db x1,x2,x3,??,x100 org 1000H buffer2 db 100 dup(?) data ends stack segment para stack ‘stack’

db 100 dup(?) stack ends code segment assume cs:code,ds:data,es:data,ss:stack start proc far begin: push ds mov ax,0 push ax mov ax,data mov ds,ax mov es,ax mov ax,stack mov ss,ax mov cx,100 cld lea si,buffer1 lea di,buffer2 again: lodsb cmp al,0 je stop stosb loop again stop: ret start endp

code ends end begin

10. 解:源程序如下: data segment array sum_e sum_o data code start: again: odd: addr: code

11.解:编程如下: data mem max data code begin:

next:

db x1,x2,??x100 db 2 dup(0) db 2 dup(0) ends segment assume cs:code,ds:data mov ax,data mov ds,ax mov sum_e,0 mov sum_e+1,0 mov sum_o,0 mov sum_o+1,0 mov cx,100 mov bx,0 mov al,array[bx] test al,01h jnz odd add sum_e,al adc sum_e+1,0 jmp short addr add sum_o,al adc sum_o+1,0 inc bx loop again mov ah,4ch int 21h ends end start segment

dw x1,x2,??,x100 dw ? ends segment

assume cs:code,ds:data mov ax,data mov ds,ax lea si,mem mov cx,100 cld lodsw

mov max,ax dec cx lodsw

test ax,0001h jnz nnop cmp ax,max jle nnop xchg ax,max nnop: loop next mov ah,4ch int 21h code ends end begin

12. 解:源程序如下:

dseg segment mem dw x1,x2,??,x100 err db ‘overflow!’,0dh,0ah,‘$’ result dw ? dseg ends cseg segment assume cs:cseg,ds:dseg begin: mov ax,dseg mov ds,ax xor ax,ax mov si,ax mov cx,100 sum: add ax,mem[si] jc ovf add si,2 loop sum mov bx,100 mov dx,0 div bx mov result,ax jmp short exit ovf: lea dx,err mov ah,9 int 21h exit: mov ah,4ch int 21h cseg ends end begin

13. 解:可编程如下:

data segment num dw a,b,c,d sum dw ? data ends stack segment para stack db 100 dup(?) top equ $-stack stack ends

stack’‘

code segment assume cs:code,ds:data,ss:stack calcul proc far start: push ds mov ax,0 push ax mov ax,data mov ds,ax mov ax,stack mov ss,ax mov ax,top mov sp,ax lea bx,num mov cx,3 mov ax,[bx] again: mov dx,ax shl ax,1 push cx mov cl,3 shl dx,cl add ax,dx add ax,[bx+2] inc bx inc bx pop cx loop again mov sum,ax ret calcul endp code ends end start

注:a*10=a*2+a*8,可用逻辑左移指令实现乘法运算。

14. 解:源程序如下: data segment X dw x1 Y dw x2 Z dw x3 U dw ? data ends code segment assume cs:code,ds:data start: mov ax,data mov ds,ax mov ax,X or ax,ax jz clear mov ax,Y or ax,ax jz clear mov ax,Z

or ax,ax jz clesr add ax,X add ax,Y mov U,ax jmp exit clear: mov X,0 mov Y,0 mov Z,0 exit: mov ah,4ch int 21h code ends end start

15. 解:源程序如下:

dseg segment

buffer db x1,x2,??,x100 result db 3 dup(0) dseg ends cseg segment assume cs:cseg,ds:dseg start: mov ax,dseg mov ds,ax mov cx,100 mov si,0

next: mov al,buffer[si] cmp al,85 jb b85 inc result jmp short addr b85: cmp al,60 jb b60 inc result+1 jmp short addr b60: inc result+2 addr: inc si loop next mov ah,4ch int 21h cseg ends end start


第三章 8088汇编语言程序设计 微机原理 第2版 课后答案(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:张姓宝宝起名大全

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: