程序题作业答案:
一、写指令:
1.将di寄存器的内容减1dec di或 sub di , 1
2.用一条指令使程序从中断服务程序返回 iret
3.从80h端口读入数据送入alin al, 80h
4.将3000h及3001h两单元内容与ax寄存器内容相减,并将其差送回原单元。
sub [3000h], ax
5.用指令实现ax寄存器内容不变,但使进位标志cf置0
and ax, ax
6.将2050h端口的内容读入cl
mov dx, 2050h
in al, dx
mov cl, al
7.把bx内容压入堆栈 push bx
8.用一条逻辑指令使dx寄存器的高3位为1,其余位不变。
or dx, e000h
或 mov bx, e000h
or dx, bx
9.把ah内容取反not ah
10.将al的内容乘以3mov cl,3
mul cl
二、写程序。
1. 将dx,ax两寄存器中的数与bx,cx两寄存器中存放的数相加,并将和送入。
2050h开始的存储区中。
add ax, cx
adc dx, bx
mov [2050h], ax
mov [2052h], dx
2.将80h端口的内容取反后在输出到原端口。
in al, 80h
out 80h, al
3.将bx寄存器的内容与cx的内容相乘,并将乘积送回bx,cx两寄存器中。
mov ax, bx
mul cx
mov bx, dx
mov cx, ax
4.编程将2000h单元开始存放的3个字节的数据送至2030h单元开始的存储区中
mov ax, [2000h]
mov [2030h], ax
mov al, [2002h]
mov [2032h], al
三、分析程序。
1.行下列程序后,ax的内容是什么?完成了什么功能?
mov ax, 5678h
not ax
inc ax
答:(ax)=a988h 此程序完成了将(ax)求补的工作。
2. 执行下列程序后,dx寄存器的内容是什么?此段程序具有什么功能?
mov dx, 0f0fh
mov bx, 4322h
push dx
push bx
pop dx
pop bx
答:(dx)=4322h (bx)=0f0fh 实现了(dx)与(bx)互换。
3. 分析下列程序的功能,并对各条指令进行注释。
lea si, strng1建立原指针。
lea di, strng2建立目的指针。
mov cx,20送串的字节个数。
cld传送过程为增址形式。
rep movs strng2, strng1 ;进行字节串传送。
将strng1为首地址存放的20个字节数传送到以strng2为首地址的存储空间。
4. 执行下列程序后,ax的内容是多少?程序功能是什么?
mov ax, 0085h
mov cl, 3
shl ax, cl
add ax, ax
答:(ax)=0850h
此程序完成了ax的内容乘16
微机原理作业答案
第一次作业。2.完成下列补码运算,并根据结果设置标志sf zf cf和of,指出运算结果是否溢出。1 00101101b 10011100b 45 补。100 补。55 补。sf 1 zf 0 cf 0 of 0 无溢出。2 01011101b 10111010b 93 补。70 补。93 补。sf...
微机原理作业4答案
微机原理与系统设计 作业4 1 在变量var1中保存六个字变量 4512h,4512,1,100 3,10h,65530 2 在变量var2中保存字符串 byte word word 3 在缓冲区buf1中留出100个字节的存储空间 4 在缓冲区buf2中,保存5个字节的55h,再保存10个字节的2...
微机原理作业与答案
8086第三章作业。3 11在实模式下,若段寄存器中装入如下数值,试写出每个段的起始地址和结束地址。1 1000h 10000h 1ffffh 2 1234h 12340h 2233fh 3 e000h e0000h effffh 4 ab00h ab000h bafffh 3 12对于下列cs i...