(2) CMP BX, AX JG EXCEED (3) CMP BX,AX JGE EXCEED (4) CMP CX,0 JZ ZERO
(5) CMP BX,AX JZ EQ (6) CMP BX,AX JLE EQSMA (7) CMP CX,5678H JZ EQ (8) CMP DX,CX JB EQSM (9) ADD AX,0 JNS ABC
(10) ADD AX,0 JS ABC1
12.编写程序段,实现十六进制数12345678H与76543210H相减运算,运算结果存入DX、AX中,其中DX存放高位。
解:参考程序段如下:
MOV AX,5678H SUB AX,3210H MOV DX,1234H SBB DX,7654H HLT 13.编写程序段,实现十进制数12345678与76543210相加运算,运算结果用BCD码表示,并存入DX、AX中,其中DX存放高位。
解:MOV AL,78H
ADD AL,10H DAA
MOV BL,AL MOV AL,56H ADC AL,32H DAA
MOV AH,AL MOV AL,34H ADC AL,54H DAA
MOV DL,AL MOV AL,12H ADC AL,76H DAA
MOV DH,AL
MOV AL,BL HLT
14.编写程序段,将附加段中1000H单元开始的100字节单元清零。 解:参考程序段如下:
MOV CX,0064H MOV DI,1000H CLD
MOV AL,00H REP STOSB HLT 15.编写程序段,将数据段中1000H单元开始的100字节单元均存放23H。 解:参考程序段如下:
MOV CX,0064H MOV AX,DS MOV ES,AX MOV DI,1000H CLD
MOV AL,23H REP STOSB HLT
第四章 汇编语言源程序设计
1.画出数据段汇编后相应存储单元中的内容并标出存储单元的逻辑地址。 DATA SEGMENT ORG 0100H
ABC0 EQU 78H ABC DB 09H,-2,45H, 2 DUP(01H,?),‘AB’ ABC1 DW -2, 34H+ABC0,$ ABC2 DD 12H ABC3 DW ABC DATA ENDS 解:
DS:0100H DS:0101H DS:0102H DS:0103H DS:0104H DS:0105H DS:0106H DS:0107H DS:0108H DS:0109H DS:010AH DS:010BH DS:010CH DS:010DH DS:010EH DS:010FH DS:0110H DS:0111H DS:0112H DS:0113H DS:0114H
ABC→ ABC1→ ABC2→ ABC3→
09H FEH 45H 01H - 01H - 41H 42H FEH FFH ACH 00H 0DH 01H 12H 00H 00H 00H 00H 01H 2.设程序中的数据定义如下: PARTNO DW ? PNAME DB 16 DUP(?) COUNT DD ? PLENTH EQU $-PARTNO
问PLENTH的值为多少?它的含义是什么? 解:PLENTH的值为22(16H)。表示当前位置与PARTNO之间有22个字节空间。 3.假设程序中的数据定义如下: LNAME DB 30 DUP(?)
ADDRESS DB