微机教材答案

发布 2022-09-04 21:58:28 阅读 3617

1.(1)偏移地址0000h(lname);49h,42h,4dh,2dh,50h,43h,20h,74h,65h,73h,74h,24h

偏移地址000ch(address);00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h,00h

偏移地址001bh(entry):03h

偏移地址001ch(code_list):0bh,07h,08h,03h,02h

2)mov ax,offset lname

2. string dw ‘ba’, 0,’dc’,0,’fe’,0

3.buf1:01h 0ffh 41h 42h --01h --01h

buf2:--0ah

count =8

4.(1)3000h,2000h

2)64h,14h

5.(1)测试num单元中的两个数,若第一个数为奇数,程序结束;

若第一个数为偶数,第二个数为奇数,则把第二个数送到第一个数所在单元,程序结束;

若第。一、第二个数均为偶数,则两个数各加1,程序结束。

2)程序执行后(num)= 0d h,(num+1)= 0d h。

6. data segment

buf db x1,x2,x3, …xn

pbuf db ?

plen db ?

nbuf db 30 dup(?)

nlen db ?

data ends

code segment

assume cs:code,,ds:data

start: mov ax,data

mov ds,ax

mov bx,0

mov si,offset buf

mov di,0

mov cx,30

lop: mov al, [si]

nc si

cmp al,0

jge lop1

mov nbuf[bx],al

inc bx

jmp next

lop1: mov buf[di], al

next: loop lop

mov plen,di

mov nlen,bx

mov ah,4ch

int 21h

code ends

end start

7. mov al,‘b’

mov ah,2

int 21h

8. cmp dest,src。根据标志位来判断比较的结果。

1)根据zf判断两个数是否相等。若zf=1,则两数相等。

2)若zf=0,则两个数不相等,则分两种情况考虑:

①比较的是两个无符号数。

若cf=0,则dest>src;

若cf=1,则dest<src。

②比较的是两个有符号数。

若of⊕sf=0,则dest>src;

若of⊕sf=1,则dest<src。

9mov bx,3000h

mov al,[bx]

inc bx

mov cx,99

again: cmp al,[bx]

jb next

mov al,[bx]

next: inc bx

dec cx

jnz again

mov [4000h],al

hlt10.相同点: 都是一次定义,多次调用。

不同点:① 执行形式:宏命令伪指令由宏汇编程序在汇编过理中进行处理;而call、ret则是由cpu执行的指令。

② 汇编结果:宏命令伪指令汇编后被展开。

③ 执行速度:宏命令执行速度较快(因无调用转移)

④ 占用内存:宏指令简化了源程序,但不能简化目标程序,并不节省内存单元;

使用过程可以节省**(源程序和目标程序)占用的内存空间。

11. [buf]= 35=23h

12. 执行上述程序段后bx的内容是 0c02dh

13. 上述程序段的功能是 : 以’*’作为结束标志,求字符串长度。

14.data segment

f dw 0,1,8 dup(?)

data ends

程序段如下:

mov cx,8

mov si,offset f

add si,4

again:mov ax,[si-4]

add ax,[si-2]

mov [si],ax

inc si

inc si

dec cx

jnz again

15. start: push cs

push ip

mov ax,0

mov es,ax

mov di,4*60h

mov ax,offset function

stoswmov ax,seg function

stoswint 60h

function proc

mov al,dat

cmp al,dat+1

jnc l1

mov ah,dat+1

mov by1,al

mov al,ah

l1: sub al,dat+1

aasfunction endp

16. data segment

dat db 3,4,2,3,4,6,7,8,9,19

data ends

code segment

assume cs:code,ds:data

start: mov ax,data

mov ds,ax

mov cx,10

mov si,offset dat1

lp1: call paixu

inc si

loop lp1

mov dx,offset dat1

mov ah,09h

int 21h

inc dx

mov cx,08h

mov ax,0

lpadd: add ax,ptr bytr[dx]

loop lpadd

mov bl,8

div bl

mov **g,ah

mov ah,4ch

int 21h

paixu proc near

push cx

push si

mov al,[si]

cmplp: cmp al,byte ptr[si+1]

jge next

mov bl,[si+1]

mov [si],bl

mov [si+1],al

mov al,bl

next: inc si

loop cmplp

pop si

pop cx

paixu endp

code ends

end start

定义堆栈段。

sseg segment stack

dw 100 dup(?)

tos label word

sseg ends

定义数据段。

dseg segment

data1 db 98h,11h,62h;定义数据621198h

data2 db 67h,80h,21h;定义数据218067h

data3 db 3 dup(?)保留结果单元。

dseg ends

定义**段。

cseg segment

assume cs:cseg,ds:dseg,ss:sseg

start proc far

mov sp,offset tos

mov ax,dseg

mov ds,ax

mov bx,offset data1;bx为数据1指针。

mov si, offset data2;si为数据2指针。

mov di, offset data3;di为数据3指针。

mov cx,3循环次数。

clc清进位。

next完成十进制数加法。

mov al,[bx]

adc al,[si]

daamov [di],al

inc bx

inc si

inc di

loop next

display显示结果。

push di

mov di,bx

call crlf把光标移到下一行的首列。

call dispp显示第一个数据。

mov dl显示‘+’号。

mov ah,2

int 21h

mov di,si

call dispp显示第二个数据。

mov dl显示‘=’号。

mov ah,2

int 21h

pop di

call dispp显示结果数据。

call crlf

mov ah,4ch

int 21h

start endp

显示di指针所指的6位10进制数据。

dispp proc

mov cx,3

dec di

displ: mov dl,[di]

push cx

mov cl,4

shr dl,cl

pop cx

add dl,30h

mov ah,2

int 21h

mov dl,[di]

and dl,0fh

微机原理答案

1.串行通信与并行通信的主要区别是什么?各有优缺点?答 按信息的传送方式可将数据通信分为并行通信与串行通信两种 并行通信 是指利用多条数据传输线将一个数据的各位同时进行传送。特点 传输速度快,适用于短距离通信。串行通信 是指利用一条传输线将数据的各位一位位地顺序进行传送。串行通信又可分为异步通信和同...

一微机答案

一 答案 二 答案 1.2 5 2.3 5 顺序可以换。三 答案。存储程序控制 当前 段内下一条要执行指令的偏移量 相加和移位 全局描述符表和中断描述符表局部描述符表和任务状态 可屏蔽 不可屏蔽中断 ax 0cfh 1200h 0100h 0200h 总线请求和仲裁阶段寻址阶段数据传送阶段结束阶段 ...

微机原理答案

第3章 8086 8088指令系统与寻址方式习题。3 3 8086系统中,设ds 1000h,es 2000h,ss 1200h,bx 0300h,si 0200h,bp 0100h,var的偏移量为0600h,请指出下列指令的目标操作数的寻址方式,若目标操作数为存储器操作数,计算它们的物理地址。1...