3-18 假定AX和BX内容为符号数,CX和DX内容为无符号数,请用比较和条件转移指令实现以下条件 转移。
(1)若DX的内容超过CX的内容,则转L1。(2)若BX的内容大于AX的内容,则转L2。(3)若CX的内容等于零,则转L3。
(4)BX的内容和AX的内容比较,若溢出则转L4。(5)若BX的内容小于等于AX的内容,则转L5。(6)若DX的内容低于等于CX的内容,则转L6。
3-19 若下列条件转移指令中的条件CC可以为B、BE、A、AE、L、LE、G、GE中的任一个,如果AX和
BX的值分别为下面(1)~(6)的情况,问在每种情况下,八个条件CC中哪几个可以转移到AGAIN去? CMP AX,BX JCC AGAIN
(1)AX=1F54H, BX=1F54H (2)AX=8765H, BX=1890H(3)AX=0FE60H, BX=0981H (4)AX=0973H, BX=0DC38H
(5)AX=8CABH, BX=0F43CH (6)AX=1234H, BX=1087H
第四章 汇编语言程序设计
4-1 请写出完成下列操作的伪指令语句。
(1)将78,-40,0D6H,49H存放在定义为字节变量STAD的存储单元中。
(2)将字数据1245H,64H,1245,0C7H存放在定义为字节变量ARRAY的存储单元中。
(3)将字节数据12H,0FCH,0E4H,65H存放在定义为字变量ALPHA的存储单元中,并且不改变数据按字节存储的次序。
(4)在以BETA为首地址的存储单元中连续存放字节数据:4个8,6个‘S’,20个空单元,10个(1,3)。
(5)在以STRING为首地址的存储单元中存放字符串THIS IS A EXAMPE。
(6)用符号TOTAL代替数字780。
4-2 请画出下列数据定义语句的内存数据排列图。
DATA1 DB -10,29H,29,‘7’,? DATA2 DW 2 DUP(‘12’,12),0CDH DATA3 DD 123456H
4-3 假设数据定义语句如下,请画出内存数据排列图。 X1 DB ?,76
X2 DW 20 DUP(1,2),80H,? X3 DD 5
COUNT EQU $-X2
请问:COUNT的值是多少?它表示什么意义?
4-4 请画 出下列数据定义语句的内存数据排列图。 ORG 0100H SA1 DB 30,‘30’ SA2 DW SA1
SA3 EQU $-SA1 SA4 DW SA3
4-5 数据定义语句如下: ORG 30H
DA1 DB 0,‘0’,30H DW DA1
请回答:字数据为3000H存储单元的偏移地址是什么?4-6 假设数 据定 义语句如下: BUF1 DB 50DUP(0)
BUF2 DW 4567H,671,0D8H BUF3 DB 10 DUP(?)
BUF4 DB 3,4,8,9,10
(1)写出将BUF1的偏移地址送BX的指令。(2)将BUF2的第4个字节数据送CL的指令。
(3)将0C6H送入BUF3的第8个字节单元中的指令。(4)用伪指令写出BUF2和BUF3总字节数。
(5)用一组程序段,写出BUF2的第2个数据671和BUF4的第4个数据9相加,结果送入BUF3中。
4-7 根据下面数据定义语句,写出各条指令执行后的结果。 FLDB DW 0A47CH
TABLE DB 52H,67H,0C0H,210 TAE EQU WORD PTR TABLE) ARRAY DB ‘1234’ CNT EQU $-ARRAY
(1)MOV AX,FLDB AL=( )(2)MOV BX,TAE BH=( )
(3)MOV CH,TABLE+2 CH=( )(4)MOV DL,ARRAY DL=( )(5)MOV DH,CNT DH=( )
4-8 数据定义语句如下,指令执行后 DA1 EQU BYTE PTR DA2 DA2 DW 0ABCDH SHR DA1,1
SAR DA2,1
上述指令序列执行后,[DA2]=( ),CF=( )。
4-9 指令AND AX,76H AND 0FH中,请问两个AND操作在什么时间进行?有何区别?如何用立即寻址直接写出该指令?
4-10 将存放在字节变量BCD1中的两个十进制数的ASCII码合并为一字节压缩的BCD码,
存入字节变量BCD2中,试编写程序。
4-11 不使用乘法指令,将寄存器AX的内容扩大7倍,试编写程序。4-12 执行下列指令后,AX寄存器中的内容是什么? TABLE DW 10,20,30,40,50 NEW DW 3
MOV SI,OFFSET TABLE ADD SI,NEW
MOV AX,[SI] HLT
4-13 有一个程序段如下所示: OR AL,AL JZ L1
SAR AL,1 JZ L2
RCL AL,1 NOT AL JZ L3
请回答:(1)当AL=〖CD#4〗,执行该程序转向L1;(2)当AL=〖CD#4〗,执行该程序转向L2;(3)当AL=〖CD#4〗,执行该程序转向L3。
4-14 在BUFF单元中有一个BCD码A,试编写程序计算Y,结果送DES单元中。