微机系统与接口期末复习
本文纯属为了自身复习需要!若有错误之处 还请各位大佬评论区留言告诉我一下谢谢!
部分转载于https://wenku.baidu.com/view/36fb767bbfd5b9f3f90f76c66137ee06eef94e0d.html
第四单元
4.6下列两个语句有何区别?
X1 EQU 100H和X2=1000H
EQU伪指令中的表达式是不允许重复定义的,而“=”伪指令允许
4.15写出完成下述要求的变量定义语句
(1)为某缓冲区BUG留下200个字节的内存空间
(2)将字符串’BYE;,WORD’,DWORD’存放于某数据区
(3)在某数据区要求存入存入下列5个数据2040H,0300H,10H, 0200H,1048H
解: (1) BUG DB 200 DUP
(2) String 1 DB ‘BYTE’ 'WORD’'DWORD’
(3)DATA-DW 2040H,0300H,10H,0200H,1048H
4.17在内存数据段,从变量X开始存了两个字,2645H和3576H,紧接着从变量Y开始两个字4328H和2598H,编写一个完整的程序,实现如下功能(包括定义数据段):
(1)将X和Y中的两个字数据相加, 结果放于变量Z;
(2)将x和Y中的两个双字数据相加,结果放于x开始的单元中
解:(1)
Data Segment
X DW 2645H,3576H
Y DW 4328H,2598H
Z DW ?
Code Segment
Assume CS:Code,DS:Data
Stare MOV AX,Data
MOV DS,AX
MOV DX,X MOV BX,Y+2
MOV BX,Y Add DX,BX
Add DX,BX MOV AX,DX
MOV AX,DX MOV Z+2,AX
MOV Z,AX MOV AX,4CH
MOV DX,X+2 INT 21H
Code Eends
Eends start
(2)
Data 1 segment
X DD 2645H,3576H
Y DD 4328H,2598H
Data Ends
Code Segment
Assume CS:Code,DS:Data
MOV AX,Data
MOV DS,AX
MOV AX,Y
ADD X,AX
MOV AX,Y+2
ADC X+2,AX
MOV X+4,0 ADC X+4,0
MOV AH,4CH
INT 21H
Code End,
End start!
4.22设有两个等字长字节理字符申。试编写个汇编语言子程序,比较它们是否完全相同,若相同则将字符“Y”送人AL中,否则,将字符“N"送入AL中。