微机原理 复习

更新时间:2023-11-27 06:32:01 阅读量: 教育文库 文档下载

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

分别写出实现如下功能的程序段

1.将AX中间八位,BX低四位,DX高四位拼成一个新字,结果存放在AX中。

AND AX,0FF0H AND运算,想保留哪几位,就把哪几位和1相与,剩下的和0相 AND BX,000FH 与

AND DX,0F0000H 16进制最高位是字母就在前面加0

ADD(OR) AX,BX OR运算,与数电中的或运算一样,根据需要使用 ADD(OR) AX,DX

2.将CX中间八位取反,其余位不变。

XOR CX,0FF0H 异或运算,相同为0,不同为1。

3.对数据段中以BX为偏移地址的连续三个单元(字节)中的无符号数求和。结果存放在后续两个单元中。

MOV AH,0 将AL(8位)扩展成AX(16位) MOV AL,[BX] 地址为BX的数据给AL

ADD AL,[BX+1] AL中的数据加上BX+1中的数据 ADC AH,0 AH+0+CF,有进位CF=1,无进位CF=0 ADD AL,[BX+2] AL中的数据加上BX+2中的数据 ADC AH,0 AH+0+CF,有进位CF=1,无进位CF=0

4.对数据段中以BX为偏移地址的连续四个单元(字节)的内容颠倒过来。

MOV AL,[BX] 地址为BX的存储单元数据给AL

XCHG AL,[BX+3] 数据交换,此时BX+3的数据是BX的 MOV [BX],AL 将AL即BX+3的数据给BX

MOV AH,[BX+1] 地址为BX+1的存储单元数据给AH

XCHG AH,[BX+2] 数据交换,此时BX+2的数据是BX+1的 MOV [BX+1],AH 将AH即BX+2的数据给BX+1

5.将BX中的四位压缩BCD数用非压缩BCD数形式按序放在AL,BL,CL和DL中。

PUSH BX 保存BX的值,如BX=1728H

AND BX,0F0FH 取BH和BL的低四位,此时BX=0708H MOV DL,BL DL=BL=08H MOV BL,BH BL=BH=07H

POP AX 取出BX的初始值AX=1728H

MOV CL,4 左(右)移超过1位,必须用CL来表示移动位数,不能直接用立即数 ROR AX,CL 循环右移4位,此时AX=7281H

AND AX,0F0FH 取AH和AL的低四位,此时AX=0201H,AL=01H MOV CL,AH CL=AH=02H

6.不用乘法指令实现AL(无符号数)乘以20。

MOV AH,00H 将AL(8位)扩展成AX(16位)

MOV CL,2 左(右)移超过1位,必须用CL来表示移动位数,不能直接用立即数 SAL AX,CL 左移2位

MOV BX,AX 将此时的AX保存

SAL AX,CL 将左移2位后的AX再左移2位 ADD AX,BX 左移2位的AX加上左移4位的AX

7.把从10000H开始的连续100个存储单元的内容(字节)复制到20000H开始的存储单元中去。

CLD 将DF置0,表示串操作由低地址向高地址进行,此时SI和DI递增。 MOV CX,100 将字符串的长度置入CX中

MOV AX,1000H 立即数不能直接传送给段寄存器 MOV DS,AX 给字符串的源段地址一个首地址

MOV SI,0 给以DS为段地址的字符串一个偏移地址 MOV BX,2000H 立即数不能直接传送给段寄存器 MOV ES,BX 给字符串的目标段地址一个首地址 MOV DI,0 给以ES为段地址的字符串一个偏移地址

REP MOVESB 把题目中的100个字节从源串传送到目标串

8.用16进制数填写下表,已知DS=1000H,ES=2000H,SS=0FCH,其余通用寄存器值为0

指令 存储器操作数的逻辑地址

0FC0H:0000H SUB [BP],AL MOV [BX],BH MOV [DI],DL MOV ES:[SI],BL ADD [BP+500H],AH SUB [SI-300H],AL MOV [DI+1000H],DL MOV [BX-8],CL MOV ES:[DI+1000H],CH MOV [BP+SI],DH MOV [BX+DI],DL 1000H:0000H 1000H:0000H 2000H:0000H 0FC0H:0500H 1000H:0FD00H 1000H:1000H 1000H:0FFF8H 2000H:1000H 0FC0H:0000H 1000H:0000H

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

Top