试编写一个工作在16位空间的486段内调用子程序,实现取16位有符号数x绝对值的操作。要求:
(1)子程序入口地址(标号):ABSX
(2)入口参数:AX=x
(3)出口参数:AX=|x|
另外,再编写一个程序段,利用这个子程序,将数据段内首地址为1000H数据区的100个16位有符号数取绝对值,并将结果存放到数据段内首地址为1100H的数据区中
初始化程序如下:
MOVDX,(1);写入控制端口的地址
MOVAL,(2);置为1
OUTDX,(3);写入控制字
MOVAL,(4);置为0
OUT(5),AL;写入控制字
file:///C:/Users/ADMINI~1/AppData/Local/Temp/ksohtml9928/wps6.jpg
设某机存储字长、指令字长和机器字长均相等,该机的指令格式如下:
其中,A为形式地址,补码表示(包括一位符号位); M为寻址模式,M=0立即寻址; M=1直接寻址(此时A视为无符号数); M=2间接寻址(此对A视为无符号数); M=3变址寻址(变址寄存器为RX); M=4相对寻址。 试问: (1)该指令格式能定义多少种不同的操作?立即寻址操作数的范围是多少? (2)写出各种寻址模式计算有效地址的表达式。 (3)当M=1、2、4时,能访问的最大主存空间为多少机器字(主存容量为64K字)?