微机原理课后习题总结

更新时间:2023-11-23 01:53:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

2.8

(1)立即数寻址 ax:1200H (2)寄存器寻址 ax:0100H

(3)存储器直接寻址 ax:4C2AH (4)寄存器间接寻址 ax:3412H (5)寄存器间接寻址 ax:4C2AH (6)基址变址寻址 ax:7856H

(7)相对基址变址寻址 ax:65B7H 2.20⑴ 由string指示起始地址的主存单元中存放有一个字符串(长度大于6),把该字符串中的第1个和第6个字符(字节量)传送给DX寄存器。 (1)lea si,string Mov dh,[si] Mov dl,[si+5] ⑵ 有两个32位数值,按“小端方式”存放在两个缓冲区buffer1和buffer2中,编写程序段完成DX.AX←buffer1-buffer2功能。 (2)mov ax word ptr buffer1 Sub ax word ptr buffer2 Mov dx word ptr buffer1+2 Sbb dx word ptr buffer2+2

⑶ 编写一个程序段,在DX高4位全为0时,使AX=0;否则使AX=-1。 (3) test dx,0F000H

jz even even: mov ax,0

⑷ 把DX.AX中的双字右移4位 (4) mov cx,4 again: sar dx,1 rcr ax,1 loop again

⑸ 有一个100个字节元素的数组,其首地址为array,将每个元素减1(不考虑溢出或借位)存于原处。 (5) mov cx,100

mov si,0 again: mov al,0FFH add al,array[si] mov array[si],al inc si

loop again

3.22 编制程序完成12H、45H、0F3H、6AH、20H、0FEH、90H、0C8H、57H和34H等10个字节数据之和,并将结果存入字节变量SUM中(不考虑溢出和进位)。 ;wjxt322.asm .model small .stack .data b_data db 12h,45h,0f3h,6ah,20h,0feh,90h,0c8h,57h,34h ;原始数据 num equ 10 ;数据个数 sum db ? ;预留结果单元 .code .startup xor si, si ;位移量清零 xor al, al ;取第一个数 mov cx, num ;累加次数 again: add al, b_data[si] ;累加 inc si ;指向下一个数 loop again ;如未完,继续累加 mov sum, al ;完了,存结果 .exit 0 end

3.30 写一个子程序根据入口参数AL=2/1/0依次实现对大小写,欲转换的字符串string中用0结束 解:

lucase proc push bx mov bx,offset string cmp al,0 je case0 cmp al,1 jz case1 cmp al,2 jz case2 jmp done

case0: cmp byte ptr [bx],0 je done cmp byte ptr [bx],’A’ jb next0 cmp byte ptr [bx],’Z’ ja next0 add byte ptr [bx],20h next0: inc bx jmp case0

case1: cmp byte ptr [bx],0 je done cmp byte ptr [bx],’a’ jb next1 cmp byte ptr [bx],’z’ ja next1 sub byte ptr [bx],20h next1: inc bx jmp case1

case2: cmp byte ptr [bx],0 je done cmp byte ptr [bx],’A’ jb next2 cmp byte ptr [bx],’Z’ ja next20 add byte ptr [bx],20h jmp next2

next20: cmp byte ptr [bx],’a’ jb next2 cmp byte ptr [bx],’z’ ja next2 sub byte ptr [bx],20h next2: inc bx jmp case2 done: pop bx ret lucase endp

5.2 在半导体存储器中,RAM指的是 随机存取存储器 ,他可读可写,但断电后信息一般会 丢失 ;而ROM指的是 只读存储器 ,正常工作时只能从中 读取 信息,但断电后信息 不会丢失 。以EPROM芯片2764为例,其存储容量为8K×8位,共有 8 条数据线和 13 条地址线。用它组成64KB的ROM存储区共需 8 片2764芯片。 5.7解:

位扩充——存储器芯片数据位数小于主机数据线数时,利用多个存储器芯片在数据“位”方向的扩充;

地址扩充(字扩充)——当一个存储器芯片不能满足系统存储容量时,利用多个存储器芯片在“地址”方向的扩充

组成32KB存储空间,用SRAM 2114(1K×4)需要64个芯片; 组成32KB存储空间,用DRAM 4116(16K×1)需要16个芯片; 它们都需要进行位扩充和地址扩充

5.11

8.8

mov al,13H

mov dx,0FFDCH out dx,al jmp intr1

intr1:mov al,90H

mov dx,0FFDEH out dx,al jmp intr2 intr2:mov al,1

mov dx,0FFDEH out dx,al

9.4解:

(1) mov al,50h

mov dx,207h out dx,al mov al,128 ;80h mov dx,205h out dx,al

(2) mov al,33h mov dx,207h out dx,al

mov ax,3000h ;不是3000 mov dx,204h out dx,al mov al,ah out dx,al

(3) mov al,0b4h mov dx,207h out dx,al mov al,02f0h mov dx,206h out dx,al mov al,ah out dx,al

9.5 解:

mov al,33h

out 0fbh,al ;写入计数器0地址:0fbh mov al,80h ;

out 0f8h,al ;写入低字节计数初值 mov al,50h

out 0f8h,al ;写入高字节计数初值 作用:计数器0的计数初值为5080h

本文来源:https://www.bwwdw.com/article/hagv.html

Top