微机原理与应用-课后编程题-裘雪红版

2020-04-14 02:54

8088编程

一、课后作业题: .................................................................................................................................. 1 3-2、若1KB的数据存放再TABLE以下,试编程序将该数据块搬到NEXT之下 ..................... 1 3-3、编写10个字(16位二进制数)之和的程序。....................................................................... 1 3-4、某16位二进制数,放在DATA1连续两单元中,试编写程序求其平方根和余数,将其分别放在ANS和REMAIN中。 .................................................................................................................... 2 3-5、试编写程序将BUFFER中的一个8位二进制数,转换为ASCII码表示十进制数,并按位数高低顺序放在ANSWER之下。 .................................................................................................... 3 3-6、在DATA1之下顺序存放着以ASCII码表示的十进制千位数,现欲将其转换成二进制数,试编程。 .............................................................................................................................................. 3 3-7、试编写程序将MOLT中的一个8位二进制数乘以20,乘积放在ANS单元及其下一单元中。 ...................................................................................................................................................... 4 3-8、在DATA1之下存放100个无符号8位数,试编程找出其中最大的数并将其存放在KVFF中。 ...................................................................................................................................................... 4 3-9、将BUFFER下100个8位无符号数按大小顺序排列,试编程。 ......................................... 5 3-10、在BVFF单元中有一个BCD数A,试写程序,计算Y,结果送DES单元。 ................ 5 二、练习题: .......................................................................................................................................... 7 1、显示字符HOW ARE YOU! ............................................................................................................... 7 2、ASCII码运算。求3+5=?,并且将结果显示输出。 ............................................................ 7 3、二进制数转换成ASCII码程序。 ................................................................................................ 7 4、二进制数转换成ASCII码,并显示。 ........................................................................................ 8 5、M N W分别为三个8位无符号数,求Q=N×M-W,然后将Q用16进制数显示输出。 ........ 8 6、M N W分别为三个8位无符号数,求Q=N×M-W,然后将Q用ASCII码显示输出。 .......... 9 7、编写10个字节之和,并显示结果的程序。 ............................................................................. 10

3-3、编写10个字(16位二进制数)之和的

一、课后作业题:

3-2、若1KB的数据存放再TABLE以下,试程序。

(本程序增加了,对结果的输出)

编程序将该数据块搬到NEXT之下 data segment

table db 1000 dup(?) next db 1000 dup(?) data ends stack segment para stack db 200 dup(?) stack ends code segment assume cs:code,ds:data,es:data,ss:stack start: mov ax,data mov ds,ax mov es,ax mov dx,1000 mov si,offset table mov di,offset next trsmt: mov al,[si] mov [di],al inc si inc di dec dx jnz trsmt mov ah,4ch int 21h code ends end start

data segment data_1 dw

0ffffh,0ffffh,0ffffh,0ffffh,0ffffh,0ffffh,0ffffh,0ffffh,0ffffh,0ffffh data ends stack segment para stack db 200 dup(?) stack ends code segment assume cs:code,ds:data,es:data,ss:stack start: mov ax,data mov ds,ax mov cx,10 lea si,data_1 xor ax,ax xor dx,dx

trsmt: mov bx,[si] add ax,bx adc dx,0 inc si inc si dec cx jnz trsmt push ax push dx pop bx mov ch,4 rotate1: mov cl,4

1

rol bx,cl mov al,bl and al,0fh add al,30h cmp al,3ah 3-4、某16位二进制数,放在data1连续两单元中,试编写程序求其平方根和余数,将其分别放在ans和remain中。 jl printit1 add al,7h printit1: mov dl,al mov ah,2 int 21h dec ch jnz rotate1 pop bx mov ch,4 rotate2: mov cl,4 rol bx,cl mov al,bl and al,0fh

add al,30h cmp al,3ah jl printit2 add al,7h printit2: mov dl,al mov ah,2 int 21h dec ch jnz rotate2 mov ah,4ch int 21h code ends end start

data

data1 ans remain digit data stack

stack code

begin:

conti:

2

segment dw 2712h dw ? dw ? equ 200 ends

segment para stack 'stack' db 100 dup(?) ends segment

assume cs:code,ds:data,ss:stack mov ax,data mov ds,ax lea bx,data1 mov ax,[bx] mov si,ax mov di,digit mov dx,0 div di add ax,2 mov cx,ax mov ax,si mov dx,0 div cx add ax,cx shr ax,1 mov dx,ax sub dx,cx je done cmp

dx,1

je done jne conti

done: mov ans,ax mov ax,si mov dx,0 div ans

mov remain,dx mov ah,4ch int 21h code ends

end

begin

3-5、试编写程序将BUFFER中的一个8位二

进制数,转换为ASCII码表示十进制数,并按

位数高低顺序放在ANSWER之下。 data segment buffer db 0ffh answer db 3 dup(?) data ends

stack segment para stack 'stack' db 200 dup(?) stack ends code segment

assume cs:code,ds:data,es:data,ss:stack binasc: mov ax,data mov ds,ax mov es,ax

mov cx,3 xor ah,ah mov al,buffer mov bl,10

mov di,offset answer binasc1:div bl

add ah,30h

3

mov [di],ah inc di and al,al jz stop mov ah,0 loop binasc1

stop: mov ah,4ch int 21h code ends

end binasc

3-6、在DATA1之下顺序存放着以ASCII码

表示的十进制千位数,现欲将其转换成二进制

数,试编程。

data segment data1 db 37h,38h,39h,36h answer dw 1 dup(?) data ends

stack segment para stack 'stack' db 200 dup(?) stack ends code segment

assume cs:code,ds:data,es:data,ss:stack start: mov ax,data mov ds,ax mov es,ax mov si,offset data1 XOR DX,DX mov bx,10 mov cx,4 xor ax,ax

loop1: mul bx mov dl,[si]

inc si sub dl,30h ADD ax,dx dec cx JNZ loop1 mov answer,ax mov ah,4ch int 21h

code ends end start

3-7、试编写程序将MOLT中的一个8位二进制数乘以20,乘积放在ANS单元及其下一单元中。 data segment molt db 0ffh ans dw ? data ends

stack segment para stack 'stack'

db 100 dup(?) stack ends code segment

assume cs:code,ds:data,ss:stack begin: mov ax,data mov ds,ax mov ax,0ffffh mov al,molt mov bl,20 mul bl mov ans,ax mov ah,4ch int 21h code ends end begin

4

3-8、在DATA1之下存放100个无符号8位数,试编程找出其中最大的数并将其存放在KVFF中。 data segment

data1 db 0f7h,0f9h,…… kvff db ?

data ends

stack segment para stack 'stack'

db 100 dup(?) stack ends

code segment

assume cs:code,ds:data,ss:stack begin: mov ax,data mov ds,ax

mov bx,offset data1 mov al,[bx] inc bx mov cx,99

again: cmp al,[bx] jnc next mov al,[bx] next: inc bx dec cx jne again mov kvff,al mov ah,4ch int 21h

code ends

end

begin


微机原理与应用-课后编程题-裘雪红版.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:美容美发行业APP解决方案

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

马上注册会员

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