微机作业解答

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

(6) MOV AX,[BX+DX] DX不能做基址寄存器 (7)MOV AX,[DI][SI] DI和SI不能一起用 (8) XCHG AX,2000H 两个操作数之间的任意一个都不能是立即数 (9)IN AL,BX 此指令的源操作数只能是DX (10)XCHG BX,IP IP不能做任一操作数
ASSUME MOV MOV LEA MOV LEA MOV CRLF DX AH
CODE SEGMENT CS:CODE , AX , DS , DX , AH , INT 21H , , INT 21H ; 宏
DS:DATA DATA AX STRING 9 BUFFER 0AH 调 用
MOV 送AL MOV MOV DIV MOV MOV ADD MOV INT 21H MOV ADD MOV INT 21H MOV INT 21H CODE ENDS END
DS:DATA,SS:STACK,CS:CODE AX,DATA DS,AX AX,X AX,Y ;X>Y? L1 AX,Y ;Y>Z? AX,Z EXIT AX,Z EXIT
• L1:CMP AX,Z;X>Z? • JLE L2 • EXIT: MOV MAX,AX • CODE • ENDS END
• LLL: INC AX • ADD BX,BX • SHR DX,1 • ( ) • HLT
1、AX=0014H,BX=200H,CX=0000H, DX=0000H 2、AX=0012H,0080H,0002H,0000H 3、0011H,0040H,0003H,0001H
编写一内存自检程序,检查从 2000H:0000H开始的64KB是否损坏,若 损坏转RAM_ERR,若完好转RAM_OK
;再给每一单元写入0AAH MOV CX,8000H MOV DI,0 REPE SCASW;扫描每个单元是否为0AAH? JNZ RAM_ERR ;有错转RAM_ERR RAM_OK: ;内存完好处理程序段 RAM_ERR: ;内存损坏处理程序段
作业: 下面程序片段中有两条转移指令,试计 算这两条指令的位移量。左边为逻辑地址及机器 码,右边为指令助记符。 13BA:001B F3 REPZ 13BA:001C A6 CMPSB 13BA:001D 75 ? JNZ 0020 ① 13BA:001F CB SAME: RET 13BA:0020 41 FOUND: INC CX 13BA:0021 89 0E 06 00 MOV [0006],CX 13BA:0025 EB ? J MP 001F ②
作业:1、求表达式Z=(10X+4Y)/2的值(X、 Y为字节型变量,Z为字型变量)
2、键盘输入一字符串(最大为80个)存入BUFFER 缓冲区,并将实际键入的字符个数以十进制数显示 输出。
程序如下: DATA SEGMENT X DB 66H Y DB 35H Z DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA MOV AX,DATA MOV DS,AX XOR AX,AX MOV AL,X SHL AX,1 ;2X MOV BX,AX SHL AX,1 ;4X SHL AX,l ;8X ADD BX,AX ;
程序如下:
• MOV BX,0 ;0送BX • LP: INC BX ;BX加1 • ADD AX,BX ;求累加和 • CMP AX,1000 ;比较 • JBE LP ;≤1000转 • MOV SUM,AX • MOV CN,BX ;送结果 • • CODE ENDS • END START ;汇编结束
2X+8X MOV MOV SHL SHL ADD SHR MOV MOV INT CODE END
AH,0 AL,Y AX,1 AX,1 BX,AX BX,1 Z,BX AH,4CH 21H ENDS
;2Y ;4Y ;10X+4Y ;(10X+4Y)/2
Βιβλιοθήκη Baidu
先利用9号功能调用显示提示信息,再利用10号功能调用 输入字符串。因实际键入字符个数在BUFFER+1单元, 是二进制数,所以需要进行二进制数到十进制数的转换, 才能显示输出。程序如下: CRLF MACRO MOV AH,2 MOV DL,0DH INT 21H MOV AH,2 MOV DL,0AH INT 21H ENDM DATA SEGMENT STRING DB ′INPUT STRING----′,0DH,0AH, ′$′ BUFFER DB 80,0,80 DUP(?) DATA ENDS
2、若某数据区得开始地址为A7F0H:2B40H,则该数据 区得首字单元和32个字的末字单元的物理地址分别为多 少? 解;首地址(A7F0H*10H)+2B40H=AAA40H; AAA40H+(20H-1)*2=AAA7EH 3、若[DS]=6100H,则当前数据段的起始地址是什么?末 地址为多少? 解:起始地址:61000H;段的长度为64K, 61000H+FFFFH=70FFFH。
AL,BUFFER+1 AH,0 CL,10 CL CL,AH DL,30H DL,AL AH,2 DL,CL DL,30H AH,2 AX,4C00H
;实际键入字符个数
• 1、为了减轻总线负载,总线上的部件大都具有 三态逻辑,三态逻辑电路输出信号的3个状态是 () • 处理器总线物理上的含义是() • 2、8086在最大模式和最小模式下,引脚信号有 什么不同? • 3、简述总线的三种数据传输方式。
4、设一个字节数据X存放在AL寄存器中,试说明下 列程序的功能。 XOR AH,AH SAL AX,1 MOV BX,AX MOV CL,2 SAL AX,CL ADD AX,BX 完成(AL)X10的功能,即10X。
• 5、假设AX=0078H,BX=06FAH,CX=1203H, DX=4105H,CF=1,下列每条指令单独执行后, 标志位CF,OF和ZF的值是多少? • DEC BX 不影响标志位 • DIV CH 所有标志位无定义 • MUL BX,若乘法结果DX包含有效值C =1, OF=1,其他不定。否则OF=0、CF=0 • SHR AX,CL C=0,ZF=0,其他不定(进位 移) • AND AL,0F0H C=0,Z=0,O=0。 AND指令每
次操作都使CF清0,
6、假设在下列程序段的括号中分别填入以下命令: 1、LOOP LLL;2、LOOPNZ LLL;3、LOOPZ LLL。
判断CX ≠0且ZF=1指令执行后,AX=?BX=?
CX=?DX=? 程序如下: ORG 0200H MOV AX,10H MOV BX,20H MOV CX,04H MOV DX,03H
解 检查内存的一般方法是先往内存的每一单元 写一个特征字,稍后再读出来看是否还是那个特 征字,如果每个单元都正确,则内存完好。一般 往里面写两次特征字,一次写55H,一次写 0AAH,这样操作是保证每个单元的每一位既能 写1又能写0,确保安全。程序如下:
MOV AX,2000H MOV ES,AX MOV DI,0 MOV CX,8000H MOV AX,5555H CLD REP STOSW ;先给每一单元写入55H MOV CX,8000H MOV DI,0 REPE SCASW ;扫描每个单元是否为55H? JNZ RAM_ERR ;有错转RAM_ERR MOV CX,8000H MOV DI,0 MOV AX,0AAAAH REP STOSW
解 JNZ 0020指令的位移量为:目的地址-IP的当 前值=0020H-001FH=01H。位移量为正,表明 由低地址向高地址转移。 JMP 001F指令的位移量为:目的地址-IP的当 前值=001FH-0027H=-8H,负数取补码,位 移量为F8H。位移量为负,表明由高地址向低地 址转移。
作业: 试编一程序,求三个带符号字数据块中的最大值,并将最大值存入 MAX字单元中。 编写程序完成求1+2+3+……N的累加和,直到累加和超过 1000为止。统计被累加的自然数的个数送CN单元,累加和送 SUM。
START
(2)
• • • • • • • • •
DATA SEGMENT SUM DW ? CN DW ? DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START: MOV AX,DATA MOV DS,AX ;初始化 MOV AX,0 ;0送AX
注意:1.不允许立即数直接送段寄存器。 2.目的操作数不能为立即数和CS段寄存器。 3.不能实现存储单元之间的数据传送。 4.不允许两个段寄存器之间直接传送信息。 5.操作数类型要匹配,字对字,字节对字节。
1.判断下列指令是否正确。若不正确,指出错误原因。 (1)MOV DS,SS 内容应由AX传送 (2) MOV AH,DX 寄存器类型不匹配 (3)MOV [BX],[SI] 不能在两个内存单元之间传递参数 (4) MOV CS ,[1000] CS不能为目的操作数 (5)INC [BX] 内存单元的内容类型不确定,可能是字节或字
(1)
• • • • • • • • • • •
程序如下: STAC SEGMENT STACK DB 200 DUP(0) STACK ENDS DATA SEGMENT X DW 00ABH Y DW –5 Z DW 200 MAX DW ? DATA ENDS CODE SEGMENT
• ASSUME • START: MOV • MOV • MOV • CMP • JG • MOV • CMP • JG • L2: MOV • JMP •
相关文档
最新文档